Any visitors, or subscribers, to John Grubers’ Daring Fireball blog will notice how he uses the post titles as direct links to the sites and information that he refers to within the posts body.

Earlier today WP Recipes posted a quick tutorial on how to set this up on your site (based on work by Vlad Grubman) by adding some code to your themes functions.php file and then changing all the permalink calls within the theme to use the new permalink code instead of the standard WordPress loop function the_permalink().

Whilst this is a perfectly workable solution, it is dependent on modifying your themes functions.php file and all of the pages that include the WordPress loop every time you switch themes (which if you are anything like me, is quite often).

I have modified the code into a small plugin, that when activated, will replace the standard permalink with an external URL without any need to modify your sites theme. I’ve also added an extra filter so that it will replace the permalinks within your RSS feed as well.

The code for the plugin can be found below, and can be downloaded from here: Eternal Permalink. To install, just change the .txt to .php and upload to wp-content/plugins.

To switch a post from using the standard permalink to an external one, you simply add a custom field to the post with a key of url1, title_url, url_title or external. The value of the custom field should be the complete URL you want to link to (including http:// ).

Advertisements

Share this:

Like this:

LikeLoading...

Related

Author: Jake Spurlock

Jake is a geek, designer, HTML+CSS lover. Taker of photos, and sometimes skiing and biking... He spends his time day dreaming new WordPress themes and camping with the Boy Scouts. For some random posts, check out the link blog.
View all posts by Jake Spurlock

27 thoughts on “How to: Point your post permalink to an external site”

Very cool plugin and one I have looked for in the past (which is why this page now resides in my delicious bookmarks =) ). I am assuming this plugin also works for pages and not just posts, right? If so, this is a function that should be considered for the wordpress core! Thanks for your work on this!

yes cool but in my case is only half the answer.
I have blog with posts from RSS feed–they change every hour or so, but am not getting urls for some reason–your plug in would help with individual posts but am not sure if it would work with rssposts

Hi Jake,
This is exactly what I was looking for . Im working on a friends site and trying to add this. I have enabled the plugin but cannot work out how to customize a permalink on the post to use an external one.
can you give an example of a link that was default, and what you entered to make your plugin work?

I know exactly what you mean, this is something I have wanted for a long time too. Apparently when WordPress 3.1 drops, they have revamped some of the core functions, and have added custom fields. We’ll see soon?

Any quick ideas on how to get this filter to integrate with the post multi-page pagination functionality…? From what I can tell, the tag uses the get_permalink() filter located in wp-includes/link-template.php so my nice “permalink” custom field isn’t used by the pagination shortcode.

I can hack link-template.php by adding the following at the beginning of the get_permalink function (line 81 in WP 3.0.5) that will act as an intercept for posts who have a ‘permalink’ custom field, but obviously hacking the core is a #1 no-no:

Jake, this is quite wonderful and does nearly everything I need – trouble is, the ‘read more’ at the end of an excerpt isn’t picking it up. See http://www.cualum.org/ – note the feature rotator – the text to the right of the image is the excerpt and it’s -not- getting the new link but the image and the post title ARE. Any ideas?

Great plugin! I love it.
One question: is there a way to put a gliph like a right arrow or something before the linked title? this way people can understand the difference between linked titles and normal titles 🙂

Just wondering how I can make this work with custom post types? I’ve used this plugin for many years with standard posts but now that I’m using custom post types I can’t figure out how to make it work for them, too.