Content filters are used to display some data at a specific location in a post. For example, if you wanted to display some data at the end of every single post on your blog, you could use a content filter and it would allow you to do this. You will need to be able to write PHP code in order to do this. If you follow my full WordPress Plugin Tutorial you should be able to build an entire plugin from start to finish without too much trouble.
So to start off, you will need to have your own custom plugin created. If you do not know how to do this, follow my guide on creating a WordPress plugin template. A plugin is very simple to create, so don’t worry if you aren’t particularly strong at programming in PHP.
Step 1 – Register The Content Filter In The Main Plugin File
Open up your plugin and go to the main php file (usually the same name as the plugin itself) and you can add the filter that will use “the_content” as the data that will be filtered. This means that when wordpress is loading the page and it comes to the point where it loads the content of the post, it will check to see if there are any filters that have been added. If it finds a filter for “the_content” it will run the function that is defined in the filter.
The following code will add a filter that is triggered when WordPress is loading the post content and it will then call a function called myinfo_filter().
add_filter( "the_content", "myinfo_filter");
Step 2 – Create The Filters Function
In order to make this code work we are going to need to create a function called myinfo_filter. The function is just a standard PHP function that will have 2 simple requirements. It must accept a variable that contains the content of the entire post and it must also return the content for the post.
When WordPress reads the code above it will call a function called myinfo_filter and it will give this function all of the content from the post. If you do not return any data the post will show up blank. If you do not add the function you will get a fatal exception. So lets add a simple function that will append some data onto the end of the post.
This function will accept the content from the post and if this is a single page ie. a post. it will add ” CUSTOM CONTENT!” onto the end of the post. This will show up for every single post on your blog. You can add some more advanced logic here to append something more substantial to the end of the post.
function myinfo_filter($content) { if(is_single()) { return $content . " CUSTOM CONTENT!"; } else { return $content; } }
You could also append the data to the start of the post by doing the exact same thing except putting the data at the start.
return "Custom Content ".$content;
Save the file and your filter should now be adding content to the end of your post.