Je construis un "calendrier de l’avent" pour un client qui souhaite une combinaison de pages spécifiques et de messages personnalisés apparaissant sur la page de couverture, dans un ordre spécifique.
Les éléments à récupérer sont les suivants: titre, extrait (ou contenu jusqu'à,), lien permanent, image sélectionnée et champs personnalisés ...
Quelle est la meilleure façon de les récupérer dans la base de données? Une requête SQL personnalisée? Une sorte de Walker? Un menu compliqué?
J'ai fini par spécifier les publications, les pages et les publications personnalisées dans un menu de navigation personnalisé, puis créé un Walker personnalisé pour afficher les bonnes informations.
Utilisez get_posts()
ou filtrez 'pre_get_posts'
sur la page de couverture.
Exemple de code pour get_posts()
:
$my_post_array = get_posts(
array (
'post_type' => array ( 'post', 'custom_type' )
)
);
foreach ( $my_post_array as $post )
{
// do something awesome …
}
Il existe également des paramètres pour un ordre personnalisé par méta-champs, etc. Un filtre sur 'pre_get_posts'
peut faire la même chose et plus. Ce n'est tout simplement pas aussi facile à lire.