The official release of WordPress 3.0 being a bit recent, I’ve had a hell of a time trying to find bit.ly plugin that supports WordPress 3.0. The idea is to get your bit.ly short URL instead of the WordPress 3.0 short URL that uses your own domain name when you press the “Get Shortlink” button of a post editor.
I found the “WP Bit.ly” plugin which looks pretty good but does not yet support WordPress 3.0.
So what does an unsatisfied geek do on a Friday evening instead of having dinner? He finds a solution.
1. Download the WP Bit.ly plugin
2. Fix the plugin code
In file wp.bitly.php, put lines 47-48 in comment:
/*add_action( 'wp', 'wpbitly_shortlink_header' );
add_action( 'wp_head', 'wpbitly_shortlink_wp_head' ); */
If you too are a geek and you need to know, this will make sure WordPress 3.0 continues to take care itself of the HTML response header and the Web page HTML header as per the rel=”shortlink” proposed standard. Otherwise, the WP Bit.ly plugin would add these twice to a page which wouldn’t be clean.
3. Modify your theme’s function.php
Add the following code to your theme’s functions.php file:
/* bit.ly shortlink */
function get_bitly_shortlink($shortlink, $id, $context, $allow_slugs) {
if (function_exists('wpbitly_get_shortlink')) {
$slink = wpbitly_get_shortlink($id);
if (empty($slink)) {
wpbitly_generate_shortlink($id);
$slink = wpbitly_get_shortlink($id);
}
return !empty($slink) ? $slink : $shortlink;
}
return $shortlink;
}
add_filter( 'get_shortlink', 'get_bitly_shortlink',10,4);
This code links the plugin code to the new WP 3.0 shortlink feature. It also makes sure that WordPress 3.0 will continue to operate as before if you do not enable the WP bit.ly plugin or you disable it.
Generate the bit.ly links from the plugin
So that the “Get Shortlink” button gets you a bit.ly link (instead of the default permalink), these should be generated once from the plugin’s settings. For new posts new bit.ly links should be created automatically.
Be aware that visits and crawls to your site will generate bit.ly links for each visited posts if no link already existed for each visited post. This is due to the fact that the short links are included in the code of each of your page to support new standards.