Toggle WordPress Help Menu

It’s not possible (as far as I know) to currently link directly to a help tab in WordPress. Here’s the jQuery solution I cooked up:

* Toggle the WP help menu tab by linking to the tab id
* The anchor must have a `rel` of `wp-help`
$(‘a[rel=”wp-help”]’).click(function() {

// Open the help wrapper if it’s not open yet
if($(‘#screen-meta’).is(‘:hidden’)) {

// Click on the tab link inside the help wrapper
$(‘#screen-meta a[href*=”‘ + $(this).attr(‘href’).replace(‘#’, ”) +'”]’).click();

// We’re just anchor linking; don’t go anywhere
return false;

If the tab’s ID that you pass to `$screen->add_help_tab()` is `example-plugin`, then you could create a link like this: `View the help docs`.

Major Changes in the Plugin Directory

The new plugin Reviews feature suggests a shifting approach to the WordPress ecosystem.

Reviews: a new tab in town Reviews TabOn every plugin page, there is now a Reviews tab. This is in addition to the Support tab that WordPress added around August.

Rating a plugin now requires a review

Until now, WordPress reviews were basic: 1-5 stars, with no additional details. You would only need to be signed in and click a star rating. With this change, requires users to be logged in and to write a review with their star rating. This will force users to be more thoughtful on why they rate a plugin a certain way.

You can now reply to reviews. Nice.Each review is now a forum thread: when a review is posted, the plugin author has a chance to reply. This is great for me as a plugin author: I can attempt to  resolve issues and get better plugin ratings. Users are able to modify their reviews and update their star ratings, which adds incentive for plugin authors to address issues with each reviewer. This is smart.

The beginning of higher accountability.

This is one way to add security and stability to the WordPress ecosystem.

I believe WordPress wants to have more tight controls over the plugins listed on the directory.  With over 22,000 plugins, Automattic simply does not have the resources to make sure all plugins are up to snuff.

The WordPress team has taken steps to help users know whether a plugin is good or not:

  • The May update made visible the number of resolved plugin support requests over a time span.
  • Earlier in the year, the website started displayed a banner alerting users when a plugin hadn’t been updated in over two years.
  • In 2011, the website started showing a graph of the plugin star ratings, not just the aggregated star rating. This helped visualize the plugin’s ratings.

WordPress as a platform.

Matt Mullenweg spoke at a WordCamp recently about his vision for auto-updating WordPress where users wouldn’t have to manually upgrade the software. His vision is of WordPress as a hassle-free platform, and I bet that reducing the variables added by troublesome plugins or themes is a high priority.

WordPress 3.5, currently in beta, introduces a new feature (emphasis mine):

You can browse and install plugins you’ve marked as favorites on, directly from your dashboard.

This feature, in concert with more in-depth reviews, marks a shift from a directory of plugin downloads to more of a WordPress “App Store” mentality: when you are logged in to your account, you can easily find and download your favorite plugins. The directory, armed with better ratings and review, will show higher-rated plugins first. All from inside WordPress instead of on the website.

This reviews implementation is a big next for the plugin directory, and is likely the first  step of many. I look forward to seeing what is planned for the directory, as well as the WordPress platform as a whole.

Notes as a Plugin Developer

  • On each plugin page, you can grab an RSS feed of the reviews, which will be helpful for responding to review comments. This is functionally similar to the plugin Support forum.
  • I really, really like this change. It will help good plugins get discovered.
  • Plugin authors can now respond to their critics! Re: Marco Arment.

Feature Request: Per-Version Ratings

Each review prominently displays the date of the review. I’m hoping that WordPress segment reviews on a per-version basis, like what Apple does in their App Store. There would be two charts: ratings for all versions, and ratings for the current version.

Recent Projects & Lessons Learned

There’s been a lull here on the website. That doesn’t mean I’ve been standing still. What have I been up to?

I’m going to tell you a bit about these projects and something I’ve learned from each of them. Continue reading “Recent Projects & Lessons Learned”

Export Link Data as CSV

Finally, a way to download link data as a CSV.

Bitly Download CSV
Would you care to download a CSV of your links? WINNING!

Download the plugin from is one of the most popular link shortening services, and rightly so: it is stable, easy to use, and has pretty looking statistics. One thing does not do is export data. There is simple no other exporter out there.

The Exporter plugin allows you to export up to three years of daily click data for your links. This allows you to analyse click data like you always wanted to! All you need is WordPress. Continue reading “Export Link Data as CSV”

Hierarchical Link Categories for WordPress

Download the plugin on

If you’ve ever tried to use WordPress’ built-in bookmarks / links manager, you know that its limits can be frustrating. One of the biggest issues I’ve encountered is that the link categories are not hierarchical.

Let’s say you have a tech blog and you link to a lot of pages about TV’s. You may want to categorize the links under TV > Plasma or TV > LCD. With the existing system, you cannot.

Enter the Hierarchical Link Categories plugin

Continue reading “Hierarchical Link Categories for WordPress”

Lottery Results – A New WordPress Plugin

Download the plugin at

For plugin support, please visit the support forum.

Show lottery results from all 43 states with lotteries

  • Choose which games you want to display
  • Choose from different lotto results layouts
  • Embed results in your content using the lottery] shortcode.

The widget automatically gets updated results every 6 hours, then they are stored in your website for very fast load times.


Continue reading “Lottery Results – A New WordPress Plugin”

Snow Report – Ski Mountain Conditions Plugin for WordPress

Denver Snow

Get the latest ski/snowboarding conditions from your favorite area or mountain using the Snow Report WordPress plugin.

The plugin uses the website’s data feeds that provide the most accurate, up to date information available. Continue reading “Snow Report – Ski Mountain Conditions Plugin for WordPress” Changes Plugin Page Layout plugin page layout change likely for usability plugin page from 2008
What the plugin page used to look like.

A couple of weeks ago, changed the layout of their plugins directory plugin pages. The update was likely to improve usability for users trying to determine whether a plugin is trustworthy and what it does. I believe the re-arranging of the page has achieved those goals.

The update removes author links

The layout redesign removes links to the official plugin page. I believe this makes it more difficult for users trying to get support on plugins.

Removing links also affects plugin authors. One of the ways that plugin authors are “rewarded” for creating plugins used to be a link from the website. This resulted in two things: increased traffic to the author’s website and some passed SEO value from the WordPress website to the author’s website.

I recommend all authors to go back through their readme.txt files and add a link to their support pages. Continue reading “ Changes Plugin Page Layout”

WordPress Debt Calculator

Download the plugin from

Add a debt calculator to your WordPress blog

Debt Calculator ScreenshotDo you have a financial blog or a blog about debt, money management, or household spending? Add a free debt calculator to your blog with no coding required.

  • Updating the style: You can update the form’s style by editing the plugin’s debt.css file
  • You can add the calculator to your website’s sidebar by using the shortcode in a text widget
  • Use in combination with the Show Content Only plugin as a pop-up window

Continue reading “WordPress Debt Calculator”

Strip Extra ImageScaler Attribute from Plugin-Generated Code

I am using the ImageScaler plugin for WordPress on a project, and I like what it does, but it adds a non-standards-compliant attribute to images, such as:

<img class="" src="" alt="Example" width="258" height="234" imagescaler="" />

To strip imagescaler’s imagescaler attribute, add the following into your functions.php file:

add_filter('the_content', 'strip_imagescaler');
function strip_imagescaler($content) {
	$content = preg_replace('/imagescaler="(.*?)".?/s','', $content);
	return $content;

How to Display a Random Testimonial or Post in WordPress

Set up a testimonials category — no need for a plugin.

There are a couple of plugins designed specifically for testimonials, but I didn’t want to use them; they use their own databases, and don’t keep with WordPress’ simplicity. If possible, the best way to work with WordPress is to use it’s built-in functionality.

I also wanted to have the testimonials as a category in WP, rather than as a separate plugin. This code will work for any type of category, not just a testimonial.

Here’s how to create a random post item in your sidebar: Continue reading “How to Display a Random Testimonial or Post in WordPress”

Get Adjacent Images – More WordPress Functions

Get the adjacent photo, man.

WordPress, just get the adjacent image links. I’ll tell you what to do with them!

WordPress is normally great about providing functions that have a return and an echo version.  In WordPress, if a function has the prefix get_, then it does not echo (print it into the content), but rather returns the result so that it can be saved as a variable, like so:  $example = get_example();

There are some functions that only have echo capability, so I wanted to share my work-around with you all.

Updated image_link functions

  • adjacent_image_link() » get_adjacent_image_link()
  • previous_image_link() » get_previous_image_link()
  • next_image_link() » get_next_image_link()

Continue reading “Get Adjacent Images – More WordPress Functions”

The SEO Denver Blog is Now Self-Hosted

SEO Denver Switching Servers

After a year of hosting the website on servers, it’s time to finally move on.

WordPress hosting was a good way to get the SEO Denver Blog up quicky and without much forethought…but hosting was always temporary, and finally, the site has moved! Continue reading “The SEO Denver Blog is Now Self-Hosted”

How to Tell if Your WordPress Widget is Active

Check your  widget activation & settings

Also, How to Check Plugin Status

Ever wonder if your widget is activated on an external site?

Here’s how to find out.

When you register a sidebar widget, you use code like this:

register_sidebar_widget(array('Name of Widget', 'class-of-widget'), 'widget_function');

If you want to check whether the widget is activated (you may want to for a variety of reasons), you can do it like this (the “class-of-widget” value from above will be used in the code below): Continue reading “How to Tell if Your WordPress Widget is Active”

Incorporate WordPress with Interspire Shopping Cart

I’m going to elaborate on this further (and about Interspire in general), but for those of you who want to make WordPress functions available throughout your shopping cart, here’s how:

Before the closing ?> in the init.php file, add the following code:
require(realpath(ISC_BASE_PATH).'/blog-directory/wp-blog-header.php');, where /blog-directory/ is your WP installation. If you installed it in the root directory, then you’d simply need require(realpath(ISC_BASE_PATH).'/wp-blog-header.php');
(see Update below).

Update: There is a bug that happens when the include is placed at the bottom of init.php; instead, add require(realpath(ISC_BASE_PATH).'/wp-blog-header.php'); on the line below require_once(dirname(__FILE__).'/lib/init.php'); (line 3).

Voila! That simple. Any questions?

Interspire + WordPress Update:

I don’t know if it’s because WordPress has been updated, or if it’s because Interspire has been, but there is a function conflict going on between the two softwares. Unfortunately, you need to replace your WordPress installation’s wp-includes/formatting.php file to have if(!function_exists()) for every function.

Here’s the file:
[download id=”6″]

Interspire + WordPress Update 2:

So, after searching Interspire Shopping Cart for each function in formatting.php, I found there are only two conflicting functions:

  • convert_chars()
  • stripslashes_deep()

If you wrap these functions found in /wp-includes/formatting.php in function_exists, everything works just dandy.

A very, vitally important note:

After some frustrating hours trying to figure out why adding products to the cart wasn’t working, I discovered that the WordPress function wp_unregister_GLOBALS() was screwing up the works. I also found another article with the same problem, and the solution: turn off register globals. You need to update your php.ini file with register_globals Off. You can also search Google for more info on how to do that.

SEO Randomizer: Save the Value of Your SEO'd Links

Search engines attribution link value is falling for SEOs and web designers.

Update: Now use the SEO WordSpinner plugin to implement this concept.
Use the get_seo_spin() PHP function in your theme’s footer.php file.

Footer links are dropping in SEO value

How to stay relevant while getting great links

As a web designer and SEO, I place links in the footers of most of my designs. Clients don’t mind (I always request the link), and it’s a high-quality link. Most small web design and SEO companies do.  Footer links have become very spammy, however, and sites try to stuff as many links there as possible.

SEOmoz has an article about footer link optimization and claims that

Footer links may be devalued by search engines automatically
Check out the evidence – Yahoo! says they may devalue footer links, Bill Slawski uncovers patents suggesting the same and anecdotal evidence suggests Google might do this (or go further) as well. Needless to say, if you want to make sure your links are passing maximum value, it’s wise to avoid the footer (particularly the footer class itself).

The era of the PageRank-passing footer links are coming to an end. The search engines have a good reason for devaluing the links — but how can we get the juice back?

Let’s consider the following issues:

Nofollow SEO for your WordPress Functions

Link Condom
Pretty crude idea of nofollow, isn't it?

While working on a recent website, I became frustrated by the lack of nofollow support in many WordPress functions.  Make that, most WordPress functions.

There are a few WP functions that I wanted to add nofollow to, so here’s a list and a download link: Continue reading “Nofollow SEO for your WordPress Functions”

How to View All (or more) Posts at once in WordPress Administration

Here’s the deal: I wanted to be able to temporarily see all the posts at once in the WordPress Administration, so I went into the wp-admin folder, and poked around, and became frustrated: it wasn’t that simple!

Go to /wp-admin/includes/post.php and scroll to line 517. You will see

Change the posts_per_page value to whatever you want it to be. Note: deleting the code will not let you view all posts.

WARNING: I don’t ever like to modify the default WordPress files, because when they get updated, you’ll be screwed. This is a only a temporary fix. It will not last if you update WordPress.

How to turn off captions in WordPress 2.6

Having fun with new technology

Turn off da captions, turn off da funk!

I’ve found that many who found my previous article about removing caption from the All In One SEO Pack are interested in disabling the WordPress 2.6 captions altogether. This is very simple to do.

Futureproof way to disable captions

From Otto:

Add this to your theme’s functions.php file:
add_filter('disable_captions', create_function('$a','return true;'));

[Edited: Updated with final solution from Otto]. Thanks to King Rat and others who’ve contributed to solving this problem.

If you have any questions, revisions, or…comments, leave a comment!