Removing the Via: A Better Click To Tweet Tutorial

Mmm. Updated Plugin goodness for all!
Mmm. Updated Plugin goodness for all!

As of v3.1, the Better Click To Tweet WordPress plugin supports the ability to selectively remove the “via @YourTwitterHandle” (I’ll refer to it as simply the “via” from here on out) on a tweet-by-tweet basis.

This is useful for folks who want to leave the “via” in most of the time, but if they have a longer quote they want to make tweetable, they are now able to (when the need arises) leave off the “via” without wholesale removing it from tweets site-wide.

While this new functionality is enabled by default, existing users who don’t wish to use it will not be affected. Here’s a brief tutorial on how to leave the “via” off of a tweet:

Step 1: Include your Twitter username

For starters, if you ever want the “via” to show up, you need to include your Twitter username in the Better Click To Tweet settings at /wp-admin/options-general.php?page=better-click-to-tweet.

Once your Twitter username is saved, the “via” will show up by default, as always. If the username is not saved, the “via” will never show up, no matter how you format the shortcode in step 2.

Step 2: Format the shortcode

Now let’s say you’ve got a GREAT quote that is just slightly too long for the 117 characters you have left after the URL. To leave off the “via” so that your quote will fit, simply add via="no" to the shortcode. The resulting shortcode should look like this: bctt tweet="Some glorious quote" via="no" (put it inside of brackets [ ], of course)

That’s it! Your 115 character quote will shine through perfectly!

I just updated to (even) Better Click To Tweet v3.1, and this guide helped me! Click To Tweet

Pro Tips and Troubleshooting:

  • the via="no" attribute is case sensitive, so via="No" will not work, and Via="no" will also not work.
  • If you use the visual editor, I’ve upgraded the javascript used to auto-generate the shortcode. All you have to do is uncheck the box to leave off the “via” (and again, it defaults to having the “via” show up automatically).

The Power User Guide to the Better Click To Tweet WordPress Plugin

This is the guide to the hidden features of the Better Click To Tweet WordPress plugin. To start with, here’s a bit of philosophy. (If you want to get straight to the how-to, skip to the appropriate sections below)

Why Hide the Power Features?

WordPress is a fantastic tool for publishing. The low entry bar and “5 minute install” have made it such that you can set your grandfather up with a self-hosted website that he can update and love.

I always have your grandfather in mind when I am developing my plugins. I want to go out of my way not to do something that would lose him. The WordPress philosophy calls this “Decisions, not Options.”:

As developers we sometimes feel that providing options for everything is a good thing, you can never have too many choices, right? Ultimately these choices end up being technical ones, choices that the average end user has no interest in. It’s our duty as developers to make smart design decisions and avoid putting the weight of technical choices on our end users.

I debated whether even adding the option to remove the via was giving too many options. But I had multiple users asking for that functionality, so I added it in as a visible option.

It turns out the Internet is a picky place, and requests for very specialized functionality started rolling in. This guide is for those power users. Here’s to making power users happy while not alienating your grandpa.

So, instead of making visible options (which violates the spirit of the WordPress philosophy), I made each of the following features an invisible one: you have to know they’re there to utilize them. There’s no checkbox or dropdown menu.

Selectively Removing the URL

A few users have asked for the ability to remove the URL from the tweet. The vast majority of my plugin’s users want a link back to the post when they create a click to tweet box, but for those who don’t, now there’s a way to remove that link.

This is such a life-changing quote it doesn't need a link. Click To TweetIf you want to remove the URL linking back to your post from a tweet, simply modify the shortcode, adding a new parameter of url="no". So, to make a box that looks and behaves like the quote to the left. (click the text to see that there’s no URL in the resulting tweet)

Your shortcode would look like this:

[bctt tweet="This is such a life-changing quote it doesn't need a link." url="no"]

If you additionally wanted to remove the “via” the shortcode would be:

[bctt tweet="This is such a life-changing quote it doesn't need a link." url="no" via="no"]

UPDATE: as of version 4.2, now you can input a custom URL in the url parameter, and the custom url (no matter how long) will be passed on to the tweet. So, this shortcode will link to the fictitious page “”:

[bctt tweet="This tweet will contain a totally custom URL" url=""]

Have you checked out the best Click To Tweet plugin for WordPress? Click To Tweet This is helpful for click to tweet boxes that you want to use to link to other things, like products. For example, I could use it to promote my plugins from within a blog post, like the quote to the left.

Known issues:

  • URLs with non-ascii characters (éåø and the like) are not currently supported. This is a limitation of PHP, and something I’m working to fix in a future release.
  • You must include the http:// or https:// at the beginning of the url parameter.
  • If your URL has the & symbol in it, it’ll confuse Twitter, and things will go badly. To avoid this issue, manually shorten your custom URLs that have that symbol in them using a service like before inserting it in the shortcode.

Selectively making links “nofollow”

If you, like me, have only a vague idea of what the concept of “nofollow” is in the SEO world, this infographic might help.

Making the front-facing links in your Better Click To Tweet boxes “nofollow” probably has very little effect on your SEO, but some folks pay a lot of attention to such things, and started to request on the forum that I enable rel="nofollow" on the links generated on posts by my plugin.

As of version 4.0, adding the nofollow attribute in the Better Click To Tweet box is as simple as adding an extra nofollow="yes" attribute to the shortcode:

[bctt tweet="Dear Search Engines, Please don't follow this link." nofollow="yes"]

Designing Custom Templates

Do you love the Better Click To Tweet plugin, but aren’t super jazzed by the design of the boxes?

As of version 4.1, there’s an option to completely take control of the design of the boxes on the front end of the site.

Here’s a step-by-step on how to make that happen.

  1. Connect via FTP to your site’s server.
  2. Drag the bcttstyle.css file currently in /wp-content/plugins/better-click-to-tweet/assets/css to the root of your /wp-content/uploads directory
  3. Poof. Done. Your box style just completely changed, and you haven’t touched any code.
Just drag it, drop it, and go refresh your site!

Any changes you make to the bcttstyle.css file will be reflected on your site. If you don’t like the new style, you can change it back by moving, renaming, or deleting the file in your /uploads directory. Also, the fact that the new file lives in the root of your /uploads directory means that any changes you make to it will not be overwritten by future plugin updates!

*note* If you come up with some cool designs, feel free to let me know, and they can be included in the plugin as options in future releases. I’ll credit you here and on the official repository page.

I’ll continue to update this post in the event that more advanced features are added to the plugin. Here’s to making the web a less confusing space for your Grandpa, but a more powerful place for you.

Speaking of my services (wait, did I forget to mention I offer WordPress services?) I specialize in outrunning and outsmarting hackers. Contact me today to get started.

I’ve closed comments on this post. If you need support, please use the official plugin support forums.

You should be paying $100 per hour for WordPress maintenance.

With a range of services from $5 a month up to $300, where is the sensible guide to how much you should pay for WordPress maintenance?

Get more developer for your money. Original Image Creative Commons Attribution
Get more developer for your money. Original Image Creative Commons Attribution
It depends on what level of service you want. Here’s the simple method to calculate (roughly) how much value you’re getting.

A good WordPress developer* charges at least $100 per hour for their services. Anyone charging less than that either doesn’t take themselves seriously or is just a hobbyist coder, doing this for fun.

For a good developer, routine maintenance will take 15 or 20 minutes per week on most WordPress installs. To estimate on the higher end, that puts us at just over an hour per month, on average, for weekly maintenance.

Those of you who are good at math have already beat me to my punchline (three paragraphs from now): $133 per month. Stick with me, though. There are some ways to bring that cost down without hiring a lesser developer. In fact, your functional cost goes UP as you higher lower end developers.

Most simple sites don’t need plugins to be updated weekly, for starters. Barring major security patches (which good developers will know about because they are plugged into the WordPress community and hear about them hours after they are released. Put a checkmark in the “worth hiring a better developer” column) the average site will be fine with monthly software updates or even quarterly updates. A good developer will be able to tell you in 5 minutes how often your site needs maintenance, based on your size, frequency of posting, and subject matter.

A good developer needs to prepare for the worst case, with regard to those security patches mentioned above. If she is managing 15 sites with maintenance, updating an emergency security bug can take hours, if all of the sites are running the offending plugin or theme. So that cost is going to be baked into her monthly fees.

There are some great systems out there to help developers to manage multiple sites, but even with the best systems, they’ve still got to manually check to make sure updates don’t break things. That’s a non-scalable moment of developer attention, per site. In the world of open source software, security issues and bugs are inevitable.

So, here’s a relatively basic monthly price breakdown:

  • Weekly maintenance: $100-$150 per site
  • Monthly maintenance: $25-$30 per site
  • Quarterly maintenance: $7-$15 per site

So, if you want top-tier maintenance for your WordPress website, expect to pay about $150 per month. That gets you a little over an hour of focused attention from a top-notch developer.

Lesser developers take longer to do tasks, and make more mistakes. That’s not a slam, that’s how we learn. But know that if you are not paying in the $100 per hour range (based on how long I’ve said it takes to update most installs–if your situation is more complex, use the appropriate multiplier), no matter if you are paying a big company or a solo developer, you are probably not dealing with a top-shelf developer.

Some things scale so that costs are covered (like invoicing, administrative work, etc.) As the developers scale the business, the costs (not the taxes, to be sure) can spead over multiple clients, and bring down overall expenses.

The one thing that doesn’t scale in the whole operation is the focused attention of a top-notch developer. And it still takes time to maintain your site.

Focused attention of a top notch developer *never* scales. Pay what it's worth. Click To Tweet

If you don’t need an hour per month of that focused attention (and you probably don’t), scale your price accordingly.

Also, note that the best developers are not going to tell you how many hours a task takes them. They charge per project, or per task, which is fair, because penalizing for efficiency is twisted.

Paying for maintenance is well worth your time. Paying for subpar maintenance is OK, just be aware of what you are paying for.

I’d welcome feedback here: is there something I’m missing? That’s why comments are enabled!

*My working definition of “good” goes beyond someone who can install plugins and themes, and tweak some CSS/HTML. If your developer can’t at least understand PHP and JavaScript, they are still a hobbyist. Pros can (and should) charge at least $100/hr.

An Update for Better Click To Tweet Power Users.

I love the smell of freshly baked plugin updates.
I love the smell of freshly baked plugin updates.
Recently my most popular WordPress plugin got a sweet little update for which the changelog simply says

“added the ability to specify a custom URL as a shortcode parameter.”

Allow me to expound on that.

This change to the plugin is HUGE for power users, because now you can put any link you’d like in a proposed tweet.

Every other similar plugin gives you the ability to link back to the post you are on (and only to that post). Now with Better Click To Tweet you can add a link to anywhere in a tweet for users to click and share!

So, if for example I want to promote (and provide a way for my readers to promote) my favorite YouTube comedy duo, now I can make a box that looks like this:

Easily some of the most ridiculous stuff you'll see on the 'net. Click To Tweet

…and gone is the link back to the post you are currently reading!

The shortcode I used to created that box looks like this:

[bctt tweet="Easily some of the most ridiculous stuff you'll see on the 'net." url=""]

Easy-peasy! A few things to note:

  • URLs with non-ascii characters (éåø and the like) are not currently supported. This is a limitation of PHP, and something I’m working to fix in a future release. For now, you can shorten those urls using and that’ll solve the problem.
  • You must include the http:// or https:// at the beginning of the url parameter.
  • If your URL has the & symbol in it, it’ll confuse Twitter, and things will go badly. To avoid this issue, manually shorten your custom URLs that have that symbol in them using a service like before inserting it in the shortcode.

Happy blogging. Don’t be scared to donate if my plugin has helped make your life easier. That’s how you keep good freelance developers in business.

Broken Websites, Automatic Updates, and Roadside Assistance

It's the automatic updater's fault your tire went flat, and other absurd thoughts.
It’s the automatic updater’s fault your tire went flat, and other absurd thoughts. Creative Commons Image Attribution

Automatic updates broke your site? No, your lack of planning broke your site.

Last week a security fix was pushed via automatic update to self-hosted WordPress users. The behind-the-scene details are inconsequential, but the gist is that the core team was made aware of a potential security issue related to the Shortcode API.

When you read the words “potential security issue” what that means is that WordPress (which powers about a quarter of the entire Internet) has a hole that the right malicious user could use to write a script to corrupt/infect as many sites and servers as possible. Depending on the level of severity, up to the entire 25% of the Internet could be affected.

Let that sink in.

So, when an issue comes up (there are proper ways of reporting it) the core team can either broadcast to all plugin developers that a fix is coming out and functionally disclose the hole to a wider audience, or they can issue the fix, and “break” some sites while preventing hackers from having even one more minute to discover a backdoor into 25% of the internet.

Perhaps it's time to stop treating website maintenance like a surprise expense. Click To TweetLeaving aside the fact that you attached yourself (for no cost) to this behemoth powering a quarter of the web with the expectation of it doing always and only things in your best interest, which is fodder for another (more pointed) post, perhaps it’s time to stop treating website maintenance like a surprise expense.

You need to prepare for automatic updates which break things in the same way you should plan on flat tires in your car or power outages in your office. They will happen. In the vast majority of cases, automatic updates have not “broken” anything. People don’t even notice them as they slam the door shut on hackers.

But every now and then the core team has to make the call to save millions of sites from male enhancement ads, with the unfortunate side effect of having some of those sites not display shortcodes properly until you fix a plugin. It’s the cost of a large-scale operation

Have a plan. When your car blows a tire, your mechanic’s roadside assistance plans pays for itself multiple times over.

Oh, and yeah, I can be that mechanic, if you’d like.