使用QUERY_POSTS按ID返回帖子或页面

时间:2011-02-14 作者:John Chandler

我正在为客户构建一个自定义主页,在那里他们希望有一些可更改的框来链接到网站内的特定页面或帖子。我在主页中添加了自定义字段,这样他们只需输入页面/帖子ID,然后它就会显示正确的帖子或页面。我希望它足够灵活,他们可以发布帖子或页面。

现在,我的盒子代码是

<?php query_posts(\'p=\'.$topright); ?>
<?php while (have_posts()) : the_post(); ?>
     {title and featured image}
<?php endwhile; ?>
其中$topright是一个已定义的变量。(我用echo测试了变量,它返回了正确的ID号。)

不幸的是,WordPress似乎要求我在帖子中使用p=ID,在页面中使用page\\u ID=ID。因此,如果我为帖子指定ID,效果很好,但如果我为页面设计ID,效果就不好了。我是否可以使用其他语法?或者,是否存在某种类型的条件,可以查看ID并识别它是帖子还是页面,以便我可以使用if-ELSE运行查询?

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

Try this:

query_posts(array(
    \'p\' => $topright,
    \'post_type\' => array(\'post\', \'page\'),
));
SO网友:Bainternet

您可以在查询中使用“post\\u in”,如果要创建自定义查询,则应使用WP\\u query或get\\u posts,而不是query\\u posts,如下所示:

$my_query = new WP_Query();
$my_query->query(array( \'post__in\' => array($topright)));
while ($my_query->have_posts()) : $my_query->the_post(); ?>
     {title and featured image}
<?php endwhile; ?>
希望这有帮助

结束

相关推荐