如何从函数.php文件中获取帖子类型

时间:2019-02-05 作者:Brad Ahrens

TLDR:How can I get the post type within the functions.php file?

我只想在帖子类型为“页面”时添加以下代码,而不是在帖子类型为“帖子”时添加以下代码但是,我无法在file函数中调用$post或get\\u post\\u type()。php

例如,下面是我想做的:

if($post->post_type == \'page\') {
    remove_filter(\'the_content\', \'wpautop\');
} elseif ($post->post_type == \'post\') {
    add_filter(\'the_content\', \'wpautop\');
}
然而,我尝试了无数种不同的方法来获得实际的帖子类型,但都没有成功。

我尝试过:

global $post;
echo $post_type;
echo $post_type_object;

printf( __( \'The post type is: %s\', \'textdomain\' ), get_post_type( get_the_ID() ) );

global $post;
var_dump($post);
var_dump($post->ID);
echo get_post_type($post->ID);
global $post_type;
$post_type = get_post_type();
echo $post_type;
print_r (get_post_type());
echo $post->post_type;
我想我几乎什么都试过了:(

这些都不能为页面或帖子提供帖子类型。

你知道我怎样才能得到这些信息吗?

非常感谢!

1 个回复
最合适的回答,由SO网友:Max Yudin 整理而成

您必须创建该函数,并在设置了post ID后调用它。否则它将是空的。E、 g。wp_head 符合此要求,init 太早了。

function my_selective_wpautop() {
    global $post;

    if( is_singular() ) {
        if( \'page\' == $post->post_type ) {
            remove_filter( \'the_content\', \'wpautop\' );
        } elseif ( \'post\' == $post->post_type ) {
            add_filter( \'the_content\', \'wpautop\' );
        }
    }
}

add_action( \'wp_head\', \'my_selective_wpautop\' );

相关推荐

如何将我的Html/JS/PHP网站上传到WordPress并设置密码保护?

我确实有一个静态HTML网站,它正在使用JS和PHP。我想把它上传到WordPress,并且只需要密码就可以访问它。这可能吗?Regarding uploading:<我能够将包含HTML、JS和PHP的文件夹上传到/public_html/MyDomain/My_Static_Website. 因此,我可以通过URL访问我的网站:www.MyDomain.com/My_Static_Website.</但不幸的是,我不能像页面一样添加它,以使其受密码保护。有没有简单的方法?