如何仅删除页面的自动段落格式,而不删除帖子(WordPress)

时间:2014-10-26 06:07:48

标签: php wordpress autoformatting

我已经熟悉了这个在WordPress中删除自动段落格式的小技巧:

remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );

...但是在 functions.php 中添加此内容会删除整个网站的段落。这不是我想要的,因为客户端需要能够自己编辑(段落格式确实可以帮助他们发布帖子)。

自动段落插入特别具有破坏性的是在客户端的主页上,其中有javascript片段。理想情况下,我想单独为此页面禁用自动p格式,或者在必要时禁用所有页面,并保留帖子。

有什么想法吗?如果需要,我可以提供更多信息。

提前致谢!


修改

插件我试过:Php Exec,原始HTML,禁用WordPress Autop,PS禁用自动格式化,切换wpautop

3 个答案:

答案 0 :(得分:10)

您应该能够检查正在呈现的模板是否是使用is_page()的页面,然后可选择运行过滤器。我们挂钩'wp_head',以便我们可以在调用the_content之前运行检查。

示例:

function remove_p_on_pages() {
    if ( is_page() ) {
        remove_filter( 'the_content', 'wpautop' );
        remove_filter( 'the_excerpt', 'wpautop' );
    }
}
add_action( 'wp_head', 'remove_p_on_pages' );

答案 1 :(得分:0)

您可以将自定义类别添加到所需页面,然后使用类别ID禁用wp_autop

//no paragraph
function no_auto_paragraph( $atts ){

  $cats = get_the_category();
  $cat  = $cats[0]->cat_ID; 

  if ($cat == 7 ){ //in my case the category is 7
    remove_filter( 'the_content', 'wpautop' );
  }

}

add_action( 'wp_head', 'no_auto_paragraph' );

//no_auto_paragraph END

答案 2 :(得分:-1)

如果必须的话,我建议将它添加到主题的home.php文件中。理想情况下,只需将其添加到主题的javascript文件中或以其他方式将内容(主页内容)与控制器(您的javascript)分开(例如,仅在主页上包含JS文件)。