我正在使用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正在通过在内容前后添加额外的分隔符和段落来净化内容。
我只想禁用此内容的自动转换,这样就不会添加分隔符/段落。
有办法吗?
最合适的回答,由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\' );
}