取消自动添加/清理通过插件添加到帖子的内容

时间:2013-07-28 作者:Atif

我正在使用SimpleReach插件,该插件使用内容挂钩向每个帖子添加一些内容。正在添加的内容是

<!-- SimpleReach Slide Plugin Version: {{srslide_plugin_version}} -->
<script type=\'text/javascript\' id=\'simplereach-slide-tag\'>
    __reach_config = {
      pid: \'{{srslide_pid}}\',
      title: \'{{title}}\',
      tags: {{{tags}}},
      authors: {{{authors}}},
      channels: {{{channels}}},{{slide_logo_elem}}
      slide_active: {{srslide_disable_on_post}},{{slide_icon_elem}}
      date: \'{{published_date}}\',
      url: \'{{canonical_url}}\',
      header: \'{{srslide_header_text}}\'
    };
    var content = document.getElementById(\'simplereach-slide-tag\').parentNode, loc;
    if (content.className){ loc = \'.\' + content.className; }
    if (content.id){ loc = \'#\' + content.id; }
    __reach_config.loc = loc || content;
    (function(){
    var s = document.createElement(\'script\');
      s.async = true;
      s.type = \'text/javascript\';
      s.src = document.location.protocol + \'//d8rk54i4mohrb.cloudfront.net/js/slide.js\';
      __reach_config.css = \'{{srslide_css_url}}\';
      var tg = document.getElementsByTagName(\'head\')[0];
      if (!tg) {tg = document.getElementsByTagName(\'body\')[0];}
      if (tg) {tg.appendChild(s);}
    })();
</script>
然而,Wordpress正在通过在内容前后添加额外的分隔符和段落来净化内容。

我只想禁用此内容的自动转换,这样就不会添加分隔符/段落。

有办法吗?

2 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

开始之前,请注意几点。它试图运行那个插件,但显然我必须在第三方网站注册才能使用它,所以这对测试造成了不利影响。

其次,我很难复制这个问题。这可能是因为我已经击败了我的开发堆栈太多,现在是时候把它擦干净,重新开始(它是),所以说。。。

wpautop 在整个帖子内容上运行。据我所知,您不能以任何方式限制它仅在部分内容上运行。

我还没有安装和测试该插件,所以我无法确认您对问题的分析是否正确,但一般来说,您可以做一些事情来避免wpautop 损坏内容:

注册脚本并将其排入队列,以避免将其压入Post正文wpautop 没有什么可咬的the_content您可能唯一能够实现的是#3。脚本通过以下方式添加该代码:add_filter(\'the_content\', \'srslide_insert_slide_js\');. 你应该可以用remove_filter(\'the_content\', \'srslide_insert_slide_js\'); 并将其添加回add_filter(\'the_content\', \'srslide_insert_slide_js\',1000); 让它跟着跑wpautop.

SO网友:Alex Dumitru

我认为你不能像这样设置autop。

我想到的唯一想法是在插入帖子后设置帖子元,然后在函数中设置条件。php。

我不知道该插件是如何添加帖子的,但您需要检索其ID。

然后使用此选项添加元:

<?php add_post_meta($post_id, \'no_autop\', \'true\'); ?> 
然后,通过将该meta添加到函数中,禁用带有该meta的帖子上的autop。php:

if(get_post_meta( $post_id, \'no_autop\', true )==\'\') {
remove_filter( \'the_content\', \'wpautop\' );
}

结束

相关推荐

从图像路径中删除‘wp-Content/Themes/Themename/’

我目前正在将一个基于其他CMS的旧网站移动到一个新服务器上,使用WordPress。然而,这个网站在Google上排名很好,我必须保留所有的链接结构,包括来自图片的链接结构。因此,在旧CMS中,图像链接如下:http://www.domain-name.de/images/image1.jpg 现在,他们是这样的:http://www.domain-name.de/wp-content/themes/theme-name/images/image1.jpg 但它们必须与第一个示例中的一