我想阻止WP包装<p>
周围的标记<div>
TineMCE编辑器中的标记…
以下是我得到的:
function filter_ptags_on_images($content) {
return preg_replace(\'/<p>([^>]*)<\\/p>/i\', \'$1\', $content);
}
add_filter(\'the_content\', \'filter_ptags_on_images\');
删除所有
<p>
文本周围的标记,但没有包装
<p><div>text</div></p>
.
我还想知道一个解决方案,如果我有嵌套<div>
标签,如<p><div><div>text</div></div></p>
.
最合适的回答,由SO网友:Ralf912 整理而成
Greedy and Ungreedy modifier:
preg_replace( \'/<p>(.+)<\\/p>/Uuis\', \'$1\', $content );
使用此脚本测试:
<?php
$c = array();
$c[] = \'<p>text</p>\';
$c[] = \'<p><div>text</div></p>\';
$c[] = \'<p><div><div>text</div></div></p>\';
foreach ( $c as $content ) {
$e = preg_replace( \'/<p>(.+)<\\/p>/Uuis\', \'$1\', $content );
var_dump( $e );
}
同时尝试
remove_filter( \'the_content\', \'wpautop\' );