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;
我想我几乎什么都试过了:(
这些都不能为页面或帖子提供帖子类型。
你知道我怎样才能得到这些信息吗?
非常感谢!
最合适的回答,由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\' );