WordPress循环按ID拉取4个页面/帖子

时间:2014-03-11 作者:ste

我试图创建一个wordpress循环,通过ID拉出4个特定页面/帖子(除了显示摘要)。主要问题是它们位于三种不同的岗位类型:“岗位”、“培训”、“页面”。

到目前为止,我已经重写了这段代码3次,虽然差不多了,但并不完全正确。

<?php
$ids = array(2101,3754,4760,2572);
query_posts(array(
\'post_type\' => array( \'post\', \'training\', \'page\' ),
\'post__in\' => $ids,
\'posts_per_page\' => 1) 
);

if (have_posts()) : 
?>
谁能告诉我出了什么问题?

1 个回复
SO网友:Tom J Nowell

绝不在任何情况下使用query_posts. 没有任何借口。

改用WP\\U查询。According to the WP_Query documentation, post_type 接受的值为\'any\'.

$ids = array(2101,3754,4760,2572);
$query = new WP_Query(array(
    \'post_type\' => \'any\',
    \'post__in\' => $ids,
    \'posts_per_page\' => 4
));

if ( $query->have_posts()) {
    while( $query->have_posts() ) {
        $query->the_post();
        the_title(); // etc
    }
    wp_reset_postdata(); // cleanup after our query
}
您还将其设置为每页返回1篇文章,但由于您没有处理分页,因此需要4篇文章,而不是1篇,所以将其增加到4篇

我还建议不要硬编码你的帖子ID。类别名称可能是更好的选择,或者是跨页面和帖子共享的“特色项目”分类法,或者更好的是,是一个帖子元值,其中包含一个复选框。所有这些都是其他问题的主题

结束

相关推荐