我正在使用multiEdit插件在模板上创建一些内容区域。
其中一个区域是某些照片将使用jQuery循环来旋转图像。
但是,像往常一样,Wordpress(或编辑器)将所有图像包装在<p>
标签中。
我使用CSS-Tricks中的函数来从内容中删除<p>
标记:
function filter_ptags_on_images($content){
return preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
}
add_filter('the_content', 'filter_ptags_on_images');
但是,据我所知,它只查找the_content
而不是其他任何内容。
Multiedit使用此:<?php multieditDisplay('name_of_region'); ?>
来显示模板中的内容块。
所以,我试图将功能更改为:
function filter_ptags_on_images($content){
return preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
}
add_filter('multieditDisplay', 'filter_ptags_on_images');
但没有这样的运气。
所以,我不确定我是否遗漏了某些东西,或者只是以错误的方式去做。
答案 0 :(得分:0)
好的,我找到了解决方法。
我在这里写了一篇关于它的文章:
http://ultraloveninja.roon.io/filtering-paragraph-tags-with-the-wordpress-multiedit-plugin
答案 1 :(得分:0)
而不是像模板一样在模板中放置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>'); ?>