我在调试情况时遇到问题,我认为有关这些系统如何工作的更好的背景信息会非常有用。我知道强烈建议不要使用函数query_posts()
。但是,让我们假设我无法从代码中删除它。具体来说,查询被更改为拉取post_type的帖子(特定于我正在使用的主题的post_type)。这是查询在更改后的样子:
posts_per_page = 10安培;寻呼= 0&安培; post_type =项目
然后循环开始,它可以成功获取每个帖子的标题。但是当我调用get_the_category()
时,它会返回一个空数组,即使所有帖子都有类别。我确认它是一个带var_dump
的空数组。
我对这些系统的工作方式没有超强的理解,所以强调不使用query_posts让我很担心。 query_posts和get_the_category()
之间是否存在任何可能导致其无法正常工作的交互?
答案 0 :(得分:0)
为什么不使用WP_Query()
?我不确定它是由query_posts
造成的,但是query_posts()
会改变Wordpress主循环(全局$wp_query
)。
您可以使用此类WP_Query
方法替换为query_posts
循环
$newLoop = new WP_Query('posts_per_page=10&paged=0&post_type=project');
if ( $newLoop->has_posts() ) {
while ( $newLoop->has_posts() ) { $newLoop->the_post();
the_title(); // Your title
var_dump ( get_the_category() ); // this should not be empty if category assigned to current post
}
}
如果您仍想使用query_posts
,请尝试以下方法之一:
尝试手动传递帖子ID:
get_the_category( get_the_ID() ); // Must be in loop
或尝试添加此内容:
// after endwhile of query_posts
wp_reset_query();