0

我正在使用 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', '\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');

但没有这样的运气。

所以,我不太确定我是否遗漏了某些东西,或者只是以错误的方式去做。

4

2 回答 2

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>'); ?>
于 2014-05-02T18:40:09.377 回答
0

好的,我找到了解决方法。

我在这里写了一篇关于它的文章:

http://ultraloveninja.roon.io/filtering-paragraph-tags-with-the-wordpress-multiedit-plugin

于 2013-12-20T22:08:26.923 回答