How to create a WordPress content filter plugin?
It is pretty easy to roll out a WordPress plugin that adds a content filter.
Creating a WordPress content filter plugin
Here are the basic steps to replace the content with a filter. This example is very rudimentary and replaces all of the content, which you would probably never really do.
- Create a new file called MyPlugin.php
- Add this code:
<?php /* Plugin Name: <Your Plugin Name> Version: 1.0 Plugin URI: tba Description: Author: <your name> Author URI: <your web site> */ function handleContentFilter( $content = null ) { return "Hello, World!"; } $test = add_filter( "the_content", "handleContentFilter" ); ?> - Upload (or copy) MyPlugin.php to the /wp-content/plugins/ directory in your WordPress install.
Replace content based on a search string
This is more likely what you are going to do. Sames steps as above, but change the file as follows:
function handleContentFilter( $content = null ) {
return str_replace("FindMe","Hello, World!", $content);
}
Using a WordPress shortcode plugin
- Start a new Post
- type in the following:
FindMe
- Click Preview.
Your post should have replaced FindMe with “Hello, Word!”.
A better WordPress content filter plugin template
While the above is all you need, a more scalable solution might involve using classes. Here is a template that uses classes.
<?php
/*
Plugin Name: <Your Plugin Name>
Version: 1.0
Plugin URI: tba
Description:
Author: <your name>
Author URI: <your web site>
*/
// A class to manage your plugin
class MyPlugin {
public function MyPlugin( $shortCodeHandler ) {
$result = add_filter( 'the_content', array( $shortCodeHandler, 'handleContentFilter' ) );
}
}
// A class to handle your shortcode
class ContentFilterHandler {
public function handleContentFilter( $content = null ) {
return str_replace("FindMe","Hello, World", $content);
}
}
$contentFilterHandler = new ContentFilterHandler();
$plugin = new MyPlugin( $contentFilterHandler );
?>

