Shariff Wrapper


The “original” share buttons automatically transmit data of your visitors to the social network sites as soon as they visit your website. They do not need to click on a share button for this and therefore have no choice, if they want their data to be send. The German computer magazine c’t has developed “Shariff” (ʃɛɹɪf) that follows the General Data Protection Regulation (GDPR – Regulation (EU) 2016/679). This plugin adapts the Shariff concept and provides an easy to use solution for WordPress. We currently support 32 services in 25 languages: AddThis, Bitcoin, Diaspora, Facebook, Flattr, Flipboard, GooglePlus, LinkedIn, mailto, Mastodon, Odnoklassniki, Patreon, PayPal,, Pinterest, Pocket, Printer, Qzone, Reddit, RSS, SMS, Stumbleupon, Telegram, TencentWeibo, Threema, Tumblr, Twitter, VK, Wallabag, Weibo, WhatsApp, Xing.

For more information about the Shariff project check out the original GitHub project and read about the project itself c’t information page (in German).

You can automatically add share buttons to posts, pages, the main blog page, product sites and many more as well as use it as a widget or add the shortcode [shariff] manually to your pages or themes.


  • Differently styled share buttons.
  • Basic options.
  • Design options.
  • Advanced options.
  • Statistic options.


  1. Upload everything to the /wp-content/plugins/ directory
  2. Activate the plugin using the plugins menu in WordPress
  3. Use [shariff] anywhere on your site and/or use the Shariff settings menu.

To enable it for all posts please check the options in the plugin settings.


Installation Instructions
  1. Upload everything to the /wp-content/plugins/ directory
  2. Activate the plugin using the plugins menu in WordPress
  3. Use [shariff] anywhere on your site and/or use the Shariff settings menu.

To enable it for all posts please check the options in the plugin settings.

Q: Can I use the Shariff buttons in my theme?

A: Yes. Simply use the shortcode function do_shortcode('[shariff]').
You can use all options of the shorttag as described on the help tab in the plugin settings.

Q: Can I use the total amount of shares in my theme?

A: Yes. You can use do_shortcode('[shariff services="totalnumber"]') to simply output the total amount of shares for a post in the loop. It will return the number itself wrapped in a <span class="shariff-totalnumber"></span> in order for the shariff.js to update the count. Also only cached data is used, in order to not slow down your site.

Q: Is there an action hook to use the share counts every time they get updated?

A: Yes. You can use
function your_awesome_function( $share_counts ) {
// $share_counts is an array including all enabled services, the timestamp of the update and the url of the post.
// do stuff
add_action( ‘shariff_share_counts’, ‘your_awesome_function’ );
WARNING: This hook will get called A LOT. So be sure you know what you are doing.

Q: How can I configure the widget?

A: It uses the same options that have been configured on the plugin options page. However, you can put in a shorttag that overwrites the default options. It has the same format as you use in posts. Take a look at the help section of the plugin options page for more information.

Q: Can I change the options on a single post?

A: Yes. You can change all options using the shorttag in the Shariff meta box on the right side of the post edit screen.

Q: Why are shares not listed?

A: Shariff tries to protect the privacy of your visitors. In order to do this, the statistics have to be requested by your server, so social networks only see a request of your server and not from your visitor. However, we do not know, if you want this. Therefore it is not enabled by default.

Q: How can I show the share counts?

A: Enable it on the plugin options page in general or add backend="on" to the shariff shorttag in your post.

Q: I still do not see share counts

A: Please have a look at the status tab on the plugin options page. It states whether share counts are enabled and if there is a problem with a service. Please also keep in mind that the plugin has a minimum refresh time of 60 seconds and that each service has their own cache as well.

Q: Why can’t I change the TTL to a smaller / bigger value?

A: The time to live (TTL) value determines, if a share count of a post or page gets refreshed when someone visits this specific page / post of your blog. Too small values create too much useless traffic, too high values negate the goal of motivating visitors to also share a post. The value can be adjusted between 60 and 7200 seconds. Keep in mind, the actual lifespan depends on the age of the post as well.

Q: I get the Facebook API error message “request limit reached”!

A: Facebook has a rate limit of 600 requests per 600 seconds per IP address. Especially in shared hosting environments many domains share the same IP address and therefore the same limit. To avoid this you can try to raise the TTL value or provide a Facebook App ID and Secret. Google “facebook app id secret” will provide many guides on how to get these.

Q: How can I change the position of all buttons?

A: Have a look at the alignment options in the admin menu or checkout the
style option.

Q: How can I change the design?

A: Have a look at the parameters “theme”, “orientation” and “buttonsize”. They work mostly like the original code parameters that are explained at Or you can have a look at the test page at to get an
overview. But please be warned: This is a test page! It is possible that you find features that are only provided in the development version. Use it only to get an impression of the design options.

Q: How can I change the design of a single button?

A: If you are a CSS guru please feel free to modify the css file. But of course this is a bad idea, because all changes will be destroyed with the next update! Instead take a look at the style and class attribute of the shorttag. If you put in any value it will create a DIV container with the ID “ShariffSC” around the buttons. If you are really a CSS guru you will know what does the magic from here on out. 😉

Q: I want the buttons to stay fixed while scrolling!

A: No problem. Just use the style attribute to add some CSS to the shorttag. For example in a widget (adjust the width as needed):
[shariff style=”position:fixed;width:250px”]
Of course you can use all other options in that shorttag as well. It also works with the CSS style option on the plugins design options page, if you really want this applied to all buttons on your page.

Q: I want a horizontal line above my Shariff buttons!

A: You can use the headline option on the design tab. For example, enter the following code to create a horizontal line and a headline:

Please share this post:

Q: I want a different or no headline in a single widget, post or page!

A: Use the headline attribute to add or remove it. For example, you can use the following shorttag to remove a headline set on the plugins options page in a single widget:
[shariff headline=””]
Of course you can use all other options in that shorttag as well.

Q: Can I add [shariff] on all posts?

A: Yes, check out the plugin options.

Q: But I want to hide it on a single post!

A: Do you really know what you want? 😉 However, it is possible. Write anywhere in your post “hideshariff”. It will be removed and Shariff will not be added. You can also use “/hideshariff” to write “hideshariff” in your post. You might also want to take a look at the Shariff meta box on the right side of your post edit screen.

Q: What are the differences between the two Shariff plugins?

A: One is developed by us, one by someone else. 😉 The main difference is that this plugin has a few more options and a great support. 🙂 Neither of the plugins are “official” or directly developed by Heise.

Q: Does it work with a CDN?

A: Yes.

Q: Pinterest does not show an image!

A: You can add media=””
within the [shariff] shorttag or add it in on the plugin options page – of course with the link to your image.

Q: Can I set a fixed URL to share?

A: You can use the “url” parameter within the shortcode
[shariff url=””]
This is also available within widgets. However, it is not a good idea to manipulate the URI, because it could mislead your visitors. So you should only use it, if this is really needed and you do really know what you are doing. Therefore it is not available on the plugin options page in general.

Q: What happened to the Twitter share counts and what is OpenShareCount?

A: Please read:

Q: The buttons are not correctly being shown on my custom theme!

A: Please make sure that wp_footer(); has been added to your theme. For more information please visit:

Q: What is the external API feature?

A: First of all: Usually you do not need it! The plugin requests all share counts itself. However, there are some reasons to put the backend on another server:
– avoid requests from you WP server to all the social networks
– use a more powerful server for the statistic
– use the original backend implementation of Heise or your own solution
– make your own backend available for more than one WP installation
But please have in mind that there are also some good reasons not to use external servers:
– you need an additional installation of WP and the plugin or have to create your own implementation of a Shariff backend
– some plugin settings (backend checks, statistic, etc.) will only work on the external server
– you have to use SHARIFF_FRONTENDS as an array with all your frontend domains to enable the backend or find your own solution
– we CANNOT provide support for your own implementation

Q: How can I configure the external API?

A: In the statistic settings fill in the URL to the API of the external server. For the WordPress installation on the external server you have to create a “constant” called SHARIFF_FRONTENDS to permit other domains to use it. Please have in mind that you have to fill in all subdomains you want to use! The domains must be defined like this:
define( ‘SHARIFF_FRONTENDS’, ‘|||’ );

Q: What does “Request external API directly.” mean?

A: By default, the browser request the share counts from the server your site is running on. If you have entered an external API your server will then request the counts from this external API instead of fetching them itself. Therefore, the external server will only see the IP from your server and not the one from your visitors. If you check this option, the browser of your visitors will instead directly request the share counts from the external API and therefore reveal their IP address to them. This might be faster, but it is less secure. Please also make sure to set the Access-Control-Allow-Origin header right. If your site is available using https, your external API will need to be reached by https as well. Otherwise the request will get blocked for security reasons. All options and features (e.g. the ranking tab) regarding the statistic will only work on the external server.


These are bugs or unexpected glitches that we know of, but that do not have an impact on the majority of users, are not security relevant and will perhaps be fixed in the future – if we have time to spend or you provide us with a lot of “Kölsch” 😉

  • If the first post on the start page is password protected and Shariff is disabled on protected posts, a widget at the end of the loop will not be rendered.


Perfect replacement for AddThis & Co.

The plugin beautifully replaces “sharing button services” like AddThis or similar. The buttons can be styled to behave exactly the same way, so the transition is almost unnoticeable.

Lóve it!

I was searching for a share button plugin that respects the privacy of my visitors, because I found out my current one is not (adding pixels for tracking) and then I found this GREAT plugin!

The buttons look exactly like I had before and how I like it (round icons), so yes very happy with it!

Thank you so much guys, sending you my gratitude 🙂

Read all 80 reviews

Contributors & Developers

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


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

Translate “Shariff Wrapper” into your language.

Interested in development?

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



  • added support for share count requests of multilingual sites
  • updated button translations for Twitter and Pinterest (thanks to Jessica, @jess78)
  • updated to Facebook Graph API v3.0


  • added support for the new WordPress Privacy Policy Guide added in 4.9.6
  • minor css adjustments
  • minor bug fixes


  • new option to add Shariff to custom WordPress hooks
  • new option to support multilingual sites using WPML and other plugins
  • new support for WooCommerce products on the ranking table
  • new option to show different headlines based on share counts
  • updated button languages, now supporting 25 languages
  • fixed a bug causing share counts to not being displayed properly


  • added support for automatic addition to bbpress forums, topics and replies
  • fixed a bug that caused “hideshariff” to not function properly


  • new support for additional manual AMP integrations
  • fixed a PHP error on certain server configurations
  • new support for the print button on AMP pages
  • fixed a markup typo
  • minor css improvements


  • new support for the “AMP for WP” plugin by Ahmed and Mohammed Kaludi
  • improved support for the “AMP for WordPress” plugin by Automattic
  • new additional workaround for servers without $_SERVER for category pages
  • minor bug fixes


  • new service wallabag (thanks to Torsten, @knodderdachs)
  • minor bug fixes
  • updated help section


  • new service Telegram (thanks to Daniel Sturm, @dcsturm)
  • new service Flipboard (thanks to csigncsign, @csigncsign)
  • new service Mastodon (thanks to scroom, @scroom)
  • new service Qzone
  • new service Weibo
  • new service TencentWeibo
  • new service SMS (will work on iOS, might not work on other phones)
  • new support of the “AMP for WordPress” plugin by Automattic
  • new option to set a custom text for the info button
  • new option to disable the metabox
  • new option to add shariff to CPTs before the content
  • new ranking table now also shows pages
  • new fix to prevent Shariff buttons from being displayed on admin pages
  • new fix to support WP-CLI (thanks to Daniel Jagszent, @d–j)
  • fixed HTML errors regarding self closing tags (thanks to Tooni, @tooni)
  • fixed a missing closing tag under certain conditions (thanks to Pat, @fortythousandmiles)
  • removed GooglePlus share counts due to Google removing the API
  • added Czech translation of the buttons
  • updated a lot of button translations
  • updated to Facebook Graph API 2.12
  • updated a lot of strings to allow for easier translation
  • updated the reddit icon
  • updated help section
  • improved documentation of the REST API endpoint for share counts (thanks to David)
  • major improvements in regards to code quality
  • minor css improvements
  • minor security improvements
  • removed the mail form for the time being due to technical and legal due diligence
  • if you need the mail form functionality, please stick to version 4.3


  • new service Odnoklassniki (thanks to rockhit)
  • new meta box allows for individual settings per post or page
  • new option to hide share counts that are zero
  • new option to disable dynamic cache lifespan (not recommended)
  • new option to set the button size to small, medium or large
  • new option to add a custom class to the container around Shariff
  • new option to open links in a popup (thanks to jackennils)
  • new option to use NewShareCount instead of OpenShareCount (Twitter)
  • added timestamp variable to be accessible via shortcode
  • fixed post timestamp for caching under certain conditions
  • fixed Facebook share count error for never crawled pages
  • fixed empty tab after sharing on certain mobile devices
  • fixed custom title attribute (thanks to kschlager)
  • updated Flattr user id for the future (thanks to poetaster)
  • reduced changelog on (thanks to timse201)
  • minor css improvements
  • updated help section

The complete changelog can be found here: