Developers Diary

Removing p tags from WordPress

Does this really work? Need to test it.  Yes, it removes the p tags, but does it allow the javascript snippet in the post to run?

//Removes the p tags when code is placed inside these 2 tags inside post
//but does it do it in time for the js code to actually run?
// <!– noformat on –> <!– noformat off –>

function newautop($text)
{
$newtext = “”;
$pos = 0;

$tags = array(‘<!– noformat on –>’, ‘<!– noformat off –>’);
$status = 0;

while (!(($newpos = strpos($text, $tags[$status], $pos)) === FALSE))
{
$sub = substr($text, $pos, $newpos-$pos);

if ($status)
$newtext .= $sub;
else
$newtext .= convert_chars(wptexturize(wpautop($sub))); //Apply both functions (faster)

$pos = $newpos+strlen($tags[$status]);

$status = $status?0:1;
}

$sub = substr($text, $pos, strlen($text)-$pos);

if ($status)
$newtext .= $sub;
else
$newtext .= convert_chars(wptexturize(wpautop($sub))); //Apply both functions (faster)

//To remove the tags
$newtext = str_replace($tags[0], “”, $newtext);
$newtext = str_replace($tags[1], “”, $newtext);

return $newtext;
}

function newtexturize($text)
{
return $text;
}

function new_convert_chars($text)
{
return $text;
}

remove_filter(‘the_content’, ‘wpautop’);
add_filter(‘the_content’, ‘newautop’);

remove_filter(‘the_content’, ‘wptexturize’);
add_filter(‘the_content’, ‘newtexturize’);

remove_filter(‘the_content’, ‘convert_chars’);
add_filter(‘the_content’, ‘new_convert_chars’);