web-dev-qa-db-fra.com

Obtenir des pages filtrées par modèle assigné

Je veux récupérer des pages avec un modèle déterminé assigné. La fonction get_pages() n'a pas de paramètre à sélectionner par modèle. Par exemple, si j'ai créé trois pages: Accueil, Page 1 et Portfolio. Après, j'ai affecté le modèle par défaut à la page d'accueil et à la page, mais le "modèle de portefeuille" a été attribué à la page de portfolio. Comment puis-je obtenir uniquement les pages qui utilisent "modèle de portefeuille" par exemple?

Si vous connaissez une fonction pour me pousser dans la bonne direction, veuillez m'en informer.

Merci.

1
Marcos

Sans savoir exactement ce que vous essayez d'obtenir, il est difficile de savoir si l'utilisation de modèles de page est la meilleure solution, ou si vous devriez envisager d'utiliser un type de publication personnalisé pour les éléments de portefeuille, puis une page d'archive personnalisée pour les afficher. En tout cas, je m'éloigne du sujet ...

Le modèle qu'une page est configuré pour utiliser est défini dans la méta de publication à l'aide de la clé _wp_page_template. Si vous utilisez la méthode query_posts au lieu de get_pages, vous pouvez également utiliser les méta-valeurs dans le cadre de la requête.

Dans mon exemple, le nom de fichier du modèle de page Portfolio est page-portfolio.php. Vous devrez modifier la requête ci-dessous pour qu'elle corresponde à la vôtre.

query_posts(array(
    'post_type' =>'page',
    'meta_key'  =>'_wp_page_template',
    'meta_value'=>'page-portfolio.php',
));

Si vous utilisez cette requête dans votre fichier de modèle, vous pouvez ensuite utiliser la boucle WordPress normale pour parcourir les résultats. Vous pouvez également ajouter tous les autres paramètres possibles à la requête pour l'affiner davantage si vous le souhaitez.

1