使用multiedit插件删除P标签

时间:2013-12-20 17:43:55

标签: html wordpress wordpress-plugin editor paragraphs

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

但没有这样的运气。

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

2 个答案:

答案 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>'); ?>