感谢@Pieter Goosen的评论,他建议这可能与pre_get_posts
. 我玩了一场,当然这似乎是个问题。这是我的旧代码:
Old Code
function add_custom_types_to_tax( $query ) {
if( is_category() || is_tag() && empty( $query->query_vars[\'suppress_filters\'] ) ) {
// Get all your post types
$post_types = get_post_types();
$query->set( \'post_type\', $post_types );
return $query;
}
}
add_filter( \'pre_get_posts\', \'add_custom_types_to_tax\' );
我用下面的代码替换了它,这似乎解决了我的问题。在存档页上(例如:
http://trulycode.com/php/) 侧框现在显示每个自定义帖子类型的第一篇帖子。
Working code:
function custom_post_archive($query) {
if ($query->is_archive){
$post_types = get_post_types();
$query->set( \'post_type\', $post_types );
}
remove_action( \'pre_get_posts\', \'custom_post_archive\' );
}
add_action(\'pre_get_posts\', \'custom_post_archive\');