En ce moment, je fais:WordPress obtenir des postes spécifiques dans un ordre arbitraire
$posts = get_posts(array('post_type' => 'page', 'post__in' => array(1, 3, 2, 9, 7)));
et je avoir deux questions:
- Post 3 est de
'post_type' => 'post'
, de sorte qu'il ne soit pas sélectionné , mais je le veux! Si j'omets'post_type' => 'page'
, alors seul le post 3 est sélectionné (car il doit supposer 'post_type' => 'post'.). Je veux être en mesure de order the posts arbitrarily by their ids. Si je savais comment utiliser MySQL, je pouvais faire:
SELECT * FROM wp_posts WHERE ID IN (1, 3, 2, 9, 7) ORDER BY FIND_IN_SET(ID, '1,3,2,9,7');
Mais, comment dois-je faire avec WordPress?
Cela fonctionnerait, mais je pense que vous faites des requêtes SQL excessives. AFAIK, 'get_post' fait une requête SQL. Donc, vous pouvez simplement remplacer la première ligne par '$ order => array (1, 3, 2, 9, 7)'. Mais alors vous seriez encore en train de faire cinq requêtes SQL, une pour chaque poste, Aussi, 'foreach' est plus rapide et plus propre dans ce cas et la plupart du temps. Voir cette [réponse] (http://stackoverflow.com/questions/4329800/wordpress-get-specific-posts-in-arbitrary-order/4337226#4337226). – ma11hew28