我已经熟悉了这个在WordPress中删除自动段落格式的小技巧:
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
...但是在 functions.php 中添加此内容会删除整个网站的段落。这不是我想要的,因为客户端需要能够自己编辑(段落格式确实可以帮助他们发布帖子)。
自动段落插入特别具有破坏性的是在客户端的主页上,其中有javascript片段。理想情况下,我想单独为此页面禁用自动p格式,或者在必要时禁用所有页面,并保留帖子。
有什么想法吗?如果需要,我可以提供更多信息。
提前致谢!
修改
插件我试过:Php Exec,原始HTML,禁用WordPress Autop,PS禁用自动格式化,切换wpautop
答案 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文件)。