There have been numerous times when I needed the filter capabilities of the_content, but I didn’t want other plugin and/or theme authors to be able to hook into it and add in their own stuff.

Here’s a code snippet I use quite regularly (please add in your own custom prefix).

<?php
/* Filter for the content - Custom */
add_action( 'init', 'city_the_content', 1 );
function city_the_content() {
	//Create our own version of the_content so that others can't accidentally loop into our output - Taken from default-filters.php, shortcodes.php, and media.php
	if ( !has_filter( 'city_the_content', 'wptexturize' ) ) {
		add_filter( 'city_the_content', 'wptexturize'        );
		add_filter( 'city_the_content', 'convert_smilies'    );
		add_filter( 'city_the_content', 'convert_chars'      );
		add_filter( 'city_the_content', 'wpautop'            );
		add_filter( 'city_the_content', 'shortcode_unautop'  );
		add_filter( 'city_the_content', 'prepend_attachment' );
		$vidembed = new WP_Embed();
		add_filter( 'city_the_content', array( &$vidembed, 'run_shortcode'), 8 );
		add_filter( 'city_the_content', array( &$vidembed, 'autoembed'), 8 );
		add_filter( 'city_the_content', 'do_shortcode', 11);
	} //end has_filter
} //end city_the_content
?>

Some sample use-cases:

  • Run on excerpts
  • Run on Widget text output
  • Run on just about any text, really

It applies the same formatting rules, and even includes the fancy oEmbed capabilities.

Enjoy.

Get the most detailed book for Ajax and WordPress for FREE

Tags: