删除<div>标记周围的<p>标记

时间:2013-01-21 作者:user1706680

我想阻止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>.

1 个回复
最合适的回答,由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\' );

结束

相关推荐

在Tinymce自定义按钮开发期间防止缓存

我在跟踪this turial 介绍如何在WordPress中向TinyMCE编辑器添加自定义按钮。试图编辑作者的JS以包含我的功能,但它似乎已被缓存。文章作者对此有一个技巧(下面的代码片段),它第一次成功了(按钮现在在工具栏中),尽管它不适用于后续刷新。// \"This will intercept the version check and increment the current version number by 3. // It\'s the quick and dirty way