Replace keywords in the_content and the_excerpt

This is an updated version of the post from a few days ago (Link keywords or replace text in all blog posts) overall this is a better solution if you have a large list of keywords. Adding this PHP snippet to the functions.php of your wordpress theme will allow you to replace keywords within the_content and the_excerpt using an associative array.

function replace_text_wps($text){
	$replace = array(
		'wordpress' => '<a href="#">wordpress</a>',
		'excerpt' => '<a href="#">excerpt</a>',
		'function' => '<a href="#">function</a>'
	$text = str_replace(array_keys($replace), $replace, $text);
	return $text;

add_filter('the_content', 'replace_text_wps');
add_filter('the_excerpt', 'replace_text_wps');

Comments  Leave a Reply

  1. WordPress Arena: A Blog for WordPress Developers, Designers and Blogger August 27, 2011 at 4:01 pm

    […] code is courtesy of Kevin Chard from WpSnipp, and we should be thankful to […]

  2. The Best way to replace words in your posts # WordPress Tricks & Tips April 4, 2011 at 8:45 am

    […] On the code above using add_filter to filter the_content and the_excerpt. So all match words will be replace with the new parameter as described. That’s is, we hope this tutorial works on you. Thanks Kevin Chard from WP Snipp for this code […]

  3. Kako automatski zameniti izraze | WPSavetnik March 18, 2011 at 1:52 pm

    […] odlomak koda preuzet je sa sajta wpsnipp.com, odli?ne kolekcije PHP caka i trikova za […]

  4. You have to be careful of this if you intend to use those keywords on an image caption, as it seems to break the caption. That’s too much of a drawback for me to use on common keyword, but otherwise this is really great. I’ll certainly find a use for this. Thanks!

    1. Hi Sean, yes this is true it will replace any text, but I’m glad you like the snippet. I’m sure that I will update it in the future to be a little more practical.

  5. If the word already is in a link, it will be some problems. My best, and simplest, solution for that is to replace eg. ‘ wordpress ‘ so that every appearence of wordpress with spaces on each side will be replaces.

    1. Hi Slowmove, this is true and is something people should take into consideration when using this snippet. Thanks for the suggestion this would work great for some instances. I may have to post an updated version in the future.

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our privacy policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

WordPress Launch Checklist

The Ultimate WordPress Launch Checklist

We've compiled all the essential checklist items for your next WordPress website launch into one handy ebook.
Yes, Send Me the Free eBook!