现在,我正在做:
$posts = get_posts(array('post_type' => 'page', 'post__in' => array(1, 3, 2, 9, 7)));
我有两个问题:
- 帖子 3 属于
'post_type' => 'post'
,因此它没有被选中,但我想要它!如果我省略'post_type' => 'page'
,则仅选择帖子 3(因为它必须假定 'post_type' => 'post'。)。 我希望能够 order the posts arbitrarily by their ids 。如果我知道如何使用 MySQL,我可以这样做:
SELECT * FROM wp_posts WHERE ID IN (1, 3, 2, 9, 7) ORDER BY FIND_IN_SET(ID, '1,3,2,9,7');
但是,我应该如何使用 WordPress 来做到这一点? ?
最佳答案
首先通过 ID 任意获取所有帖子,然后循环遍历所有帖子
你可以这样做:-
$posts=$wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE ID IN (1, 3, 2, 9, 7)
ORDER BY FIND_IN_SET(ID, '1,3,2,9,7')");
$count=count($posts);
for ($counter=0 ; $counter < $count; $counter++)
{
$post=get_post( $posts[$counter]->ID, $output );
//do your stuffs with posts
}
希望这有帮助
关于mysql - WordPress 以任意顺序获取特定帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4329800/