我正在使用multiEdit插件在模板上创建一些内容区域。
其中一个区域是一些将使用jQuery循环在图像中旋转的照片。
但是,像往常一样,Wordpress(或者更确切地说是编辑器)将所有图像包装在一个<p>
标签中。
我使用了CSS-Tricks中的函数hack从内容中删除了<p>
标签:
function filter_ptags_on_images($content){
return preg_replace('/<p>s*(<a .*>)?s*(<img .* />)s*(</a>)?s*</p>/iU', '123', $content);
}
add_filter('the_content', 'filter_ptags_on_images');
但是,据我所知,它只寻找the_content
,而不是其他任何东西。
多重编辑使用以下命令:<?php multieditDisplay('name_of_region'); ?>
在模板中显示内容块。
因此,我尝试将函数更改为:
function filter_ptags_on_images($content){
return preg_replace('/<p>s*(<a .*>)?s*(<img .* />)s*(</a>)?s*</p>/iU', '123', $content);
}
add_filter('multieditDisplay', 'filter_ptags_on_images');
但没有这样的运气。
所以,我不太确定我是否错过了什么或只是以错误的方式去做。
好的,我找到了解决方法。
我在这里写了一篇关于它的文章:
http://ultraloveninja.roon.io/filtering-paragraph-tags-with-the-wordpress-multiedit-plugin
而不是像此示例那样在模板中放置multiEdit字段
<?php multieditDisplay('Top'); ?>
您可以通过传递 true 作为第二个参数来阻止自动打印,如下所示
<?php echo multieditDisplay('Top', true); ?>
因此,如果您想从输出中删除所有标签,请尝试此操作
<?php echo strip_tags(multieditDisplay('Top', true)); ?>
如果要包含某些标签,请提供要包含的标签列表,并将其作为参数传递给strip_tags
如下所示<?php echo strip_tags(multieditDisplay('Top', true), '<p><a>'); ?>