The hashtagger Plugin allows you to use #hashtags, @usernames and $cashtags in your posts

This plugin uses the WordPress Tag system to automatically convert a #hashtag into a Post Tag. Each #hashtag is added as a “normal” tag (without leading hash) to the post, so it is fully compatible with existing tags!


Just type anywhere in a post

This adds “hashtag” as tag to the current post and on links to tag archive page for “hashtag” when showing the post.

Use +#hashtag to only link to a tag archive page without adding “hashtag” as tag to the post. When showing the post the link is showed as “#hashtag” (without “+”). If the tag does not exist the text remains unchanged and no link is created.

Use duplicate ##hashes to tell the plugin that this word should not be converted into a tag. Duplicate hashes are replaced by a single hash when showing the post.

This creates a link either to the Profile Page or the Website of User “username”. The usage of @usernames can be activated optionally. If the username does not exist the text remains unchanged and no link is created. It is highly recommended to use @nicknames instead of @usernames to enhance security (read more).

Use @@username to avoid link creation. When showing the post this is displayed as “@username” without link (@username feature has to be activated).

This creates a link to the concerning stock symbol at MarketWatch, Google Finance, Yahoo Finance or StockTwits. The usage of $cashtags can be activated optionally. $cashtags link to the concerning stock symbol at MarketWatch, Google Finance or Yahoo Finance. Notice: stock symbols can not be validated, using a invalid stock symbol will cause an not found error on the target site.

Use $$cashtag to avoid link creation. When showing the post this is displayed as “$cashtag” without link ($cashtag feature has to be activated).

WordPress Security

If you activate the @username feature it is highly recommended to use @nickname instead of @username (read more)!

Post Types and Section Types

It is possible to use #hashtags, @usernames and $cashtags on Posts, on Pages and on Custom Post Types within Content, Title and Excerpt. Activate only the Post Types and Section Types you want to be processed to avoid unnecessary processing for best performance.

Formatting links

Additional CSS Class(es) to add to the #hashtag and @username links can be configured on the plugins setting page.

Display of links in front end

Optionally all symbols (#, @, $) can be removed from the links generated in front end.

Display of Tags in front end

There’s an option to automatically add a hash symbol in front of tags (e.g. when using the Tag Cloud Widget).

For developers

Use do_hashtagger( $content ) in your theme files to process #hashtags and @usernames in $content.

Docs & Support

Plugin Manual

Support Forum

Video: How to use hashtags in WordPress (Note: The video is outdated! A new version will be created as soon as possible.)

Do you like this plugin?

I spend a lot of my precious spare time to develop and maintain my free WordPress plugins. You don’t need to make a donation. No money, no beer, no coffee. If you like this plugin then please do me a favor and give it a good rating. Thanks.

Plugin Privacy Information

  • This plugin does not set cookies
  • This plugin does not collect or store any data
  • This plugin does not send any data to external servers

Peters’ Plugins Privacy Information Page


This plugin is compatible with ClassicPress.

More plugins from Peter

Stay up to date

Follow me on Facebook
YouTube Channel


  • General Settings: This section shows the current Tag base setting
  • Tags Settings: Options to allow hashtags starting with numbers and disable link creation
  • Usernames Settings: Handling of @usernames respectively @nicknames can be changed here
  • Cashtags Settings: Handling of $cashtags can be changed here
  • Advanced Settings: Options to not delete tags that are not found in content and to process only pages containing a single post
  • Post Types Settings: Define which Post Types should be processed
  • Section Types Settings: Define which Section Types should be processed
  • CSS Style Settings: Add CSS Classes to use for the generated links in Front End
  • Display Settings: Options to not display symbols in front of generated links in Front End and to automatically add hash symbols to all Tags in Front End
  • Regeneration of all existing Objects with the current settings


What characters can a hashtag include?

The hashtag detection follows the rules for hashtags used on Twitter, Instagram, YouTube, Pinterest and so on. The minimum length for a hashtag is 2 characters. A hashtag must not start with a number (this can be changed optionally). A hashtag not only ends at a space but also at punctuation marks and other special characters. A hashtag may contain underscores.

Does this also work for pages?

Yes and No. Yes – the plugin can add the tags also for pages. No – WordPress does not show the tags section for pages and also pages are not listed on tag archives.

This plugin does not change this behavior of WordPress because there already exist several plugins that add the tag functionality for pages. Please use one of them if you want to tag your pages.

How to change the Tag base?

The Tag base for the Tag Archive Page URL (e.g. example.com/tag/anytag) can be set on the ‘Permalink Settings’ page under ‘Tag base’ in your WP admin.

Where does @username link to?

This can be set on hashtagger Settings Page. @username links can either link to the Users Profile Page or to the Users Webiste (Users Profile Page if no Webpage is set). When linking to Users Website the link can be opened in a new window if desired.

Why should I use @nicknames instead of @usernames

This is important to enhance WordPress security. Please take a look at the Manual.

Can I use #hashtags and/or @usernames in Excerpts?

Yes, just activate this feature.

Can I use #hashtags and/or @usernames in Titles?

Yes, just activate this feature.

Can I regenerate all existing Posts after changing Settings?

Yes, you can regenerate all affected objects (Post, Pages, Custom Posts) using the current settings.

Where can I get help?

Please use the Support Forum.


Read all 32 reviews

Contributors and Developers

“hashtagger” is open source software. The following people have contributed to this plugin.


“hashtagger” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “hashtagger” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Change Log

7.2 (2019-04-07)

  • bug fix for version 7.0 and 7.1

7.1 (2019-04-04)

  • Ignore Blocks added

7 (2019-04-03)

  • Ignore List added
  • security vulnerability in AJAX call fixed

6 (2019-03-09)

  • make use of $wp_rewrite->get_extra_permastruct() to show current tag base URL
  • UI improvements
  • code improvement

5 (2018-08-03)

  • StockTwits added as link target for $cashtags
  • further UI-improvements

4 (2018-05-08)

  • option to only process singular posts added
  • many code optimizations
  • minor UI-improvements

3.8 (2017-11-16)

  • faulty display in WP 4.9 fixed

3.7 (2017-09-13)

  • Option to automatically add hash symbol in front of tags

3.6 (2017-07-11)

  • Redesigned admin interface
  • Code improvement

3.5 (2016-09-13)

  • Option to only create tags from #hashtags, but do not show links
  • Bug fix Tag Regeneration

3.4 (2016-08-18)

  • Enhanced Polylang support to allow same hashtag in several languages
  • Option to allow hashtags starting with numbers

3.3 (2015-12-22)

  • Uage of cashtags to link to stock symbols
  • Optionally remove symbols in front of generated links in front end

3.2 (2015-05-28)

3.1 (2015-02-05)

  • Spanish translation added (thanks to Andrew for translating)
  • Cosmetics

3.0 (2014-12-21)

  • Completely rewritten with a lot of new Settings and a feature to regenerate existing objects

2.1 (2014-10-10)

  • Optionally use @nicknames instead of @usernames (thanks to joeymalek for pointing out)
  • Added do_hashtagger() Theme Function (thanks to joinfof for the idea)

2.0 (2014-09-17)

  • Optional usage of @usernames
  • Syntax +#hashtag to create link only without adding tag

1.3 (2014-08-15)

1.2 (2014-08-05)

  • hashtags can contain non ASCII characters
  • hashtags must not start with a number
  • hashtags can start after punctuation marks without whitespace
  • hashtags end at punctuation marks

1.1 (2014-07-31)

  • Option to specify css class added
  • German translation added

1.0 (2014-07-09)

  • Initial Release