【问题标题】:Remove P tags with multiedit plugin使用 multiedit 插件删除 P 标签
【发布时间】:2014-01-09 15:25:29
【问题描述】:

我正在使用 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 使用这个:&lt;?php multieditDisplay('name_of_region'); ?&gt; 在模板中显示内容块。

所以,我试着把函数改成这样:

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');

但没有这样的运气。

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

【问题讨论】:

    标签: html wordpress editor paragraphs


    【解决方案1】:

    而不是像这个例子那样在模板中放置 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>'); ?>
    

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2020-10-27
        • 2014-10-02
        • 2013-04-12
        • 2016-10-02
        • 1970-01-01
        • 2016-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多