写这个条件语句的正确方式是什么?

时间:2014-04-03 作者:adoboda

我想从特定页面中删除自动格式化“wpautop”。以下是我得到的,但似乎不起作用:

if ( is_page ( \'services\' ) ) {
remove_filter( \'the_content\', \'wpautop\' );
remove_filter( \'the_excerpt\', \'wpautop\' );
};
我对php非常陌生,我做了一些研究来了解如何编写此语句,但我很难找到一个满足我需要的示例。写这个条件语句的正确方法是什么?

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

您需要在template_redirect 钩您需要先等待wordpress完成页面加载,然后才能添加要删除的挂钩wpautop, 否则你的钩子就会被碾过。所以你的功能是这样的

function pietergoosen_remove_wpautop() {
if ( is_page ( \'services\' ) ) {
remove_filter( \'the_content\', \'wpautop\' );
remove_filter( \'the_excerpt\', \'wpautop\' );
}
}

add_action( \'template_redirect\', \'pietergoosen_remove_wpautop\' );

SO网友:Howdy_McGee

这是我根据这个发现的question at Stack Overflow

您必须完全删除wpautop,然后在需要时将其重新添加,这一点我在链接的评论中表示同意,这很不幸:

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

/** Change How The Content Works **/
function no_content_autop($content){
    global $post;

    if($post->post_type != \'services\')
        return wpautop($content);

    return $content;
}
add_filter(\'the_content\',\'no_content_autop\');

/** Change How The Excerpt Works **/
function no_excerpt_autop($content){
    global $post;

    if($post->post_name != \'services\')
        return wpautop($content);

    return $content;
}
add_filter(\'the_excerpt\',\'no_excerpt_autop\');
这个问题很老了,所以你可能想看一两天这个问题,看看是否有人想出了一个更好的答案。

结束

相关推荐

调用图像标题、替代文本和描述的PHP代码?

是否有Wordpress PHP代码来调用图像标题、替代文本和描述?我有几个标题,标题,alt文本和描述字段填充的图像,并希望在图像上显示这些。我知道如何称呼图像标题:<h1><?php the_title(); ?></h1> 如何处理其他字段?下面是我其余代码的示例(这是幻灯片)<div class=\"slide\"> <?php if ( get_post_meta( $post->ID, \"slid