0

我的自定义帖子类型“游戏”分类中有一组名为游戏名”的字段- 我正在尝试使用query_posts来检索这个值......

$args = array(
    'post_status'=>'publish',
    'post_type'=>'games',
    'gamename' => 'Space Invaders'
);
query_posts($args);

if(have_posts()) : while (have_posts()) : the_post();
    the_title();
endwhile; else:
    echo 'No Posts!';
endif;
wp_reset_query();

这对我不起作用,它只是返回“无帖子”

有人可以建议我做错了什么吗?

4

1 回答 1

1

首先,不要使用query_posts();,blech。使用$query = new WP_Query,你可以在这里阅读。

query_posts()试图成为国王并覆盖全局变量(EW!),但是WP_Query该类没有,并且被认为是您应该循环帖子的最佳(唯一?)方式。

我个人(并且有同事)都遇到过同样的问题,query_posts()没有回复任何帖子。最后,有 9/10 次是因为它覆盖了全局变量(即 $post D:),这使得它返回空。并且 9/10 次,使用$query = new WP_Query;代替有效!

但是,如果您愿意使用,请query_posts()尝试wp_reset_query()在您的代码之前调用,也许您有一个插件或在您的代码启动之前没有正确重置它的东西

编辑

你有

if(have_posts()) : while (have_posts()) : the_post();

你有这个 if 语句的任何理由,而不仅仅是标准:

while ( have_posts() ) : the_post();
于 2012-09-26T17:49:55.463 回答