Je voudrais interroger uniquement les pages avec un certain modèle de page avec WP_Query
ou une fonction qui retournerait l'objet post, mais je ne trouve aucune information à ce sujet sur le codex officiel.
Je voudrais interroger uniquement les pages avec un certain modèle de page avec WP_Query
ou une fonction qui retournerait l'objet post, mais je ne trouve aucune information à ce sujet sur le codex officiel.
Réponses:
Essayez ceci ... En supposant que le nom du modèle est 'my_template.php',
$query = new WP_Query(
array(
'post_type' => 'page',
'meta_key' => '_wp_page_template',
'meta_value' => 'my_template.php'
)
);
//Down goes the loop...
Vous pouvez également utiliser get_posts ou modifier les messages de requête pour effectuer le travail. Ces deux fonctions utilisent les mêmes paramètres que WP_Query .
Incorrect: à partir de wordpress 3, vous avez besoin de quelque chose comme:
$args = array(
'post_type' => 'page',
'meta_query' => array(
array(
'key' => '_wp_page_template',
'value' => 'my_template.php'
)
)
);
post_type
. Sinon, vous n'avez pas besoin du meta_query
tableau pour une seule paire clé / valeur personnalisée.
meta_key
et meta_value
ou avec un tableau simple, qui peut inclure plusieurs conditions.
Le modèle de page est stocké en tant que méta-valeur avec la clé "_wp_page_template".
Il vous suffit donc d'utiliser cette clé dans un paramètre de méta-requête. Pour des exemples
et http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters
Si la tentative de quelqu'un aboutit incorrectement à zéro publication, le nom du modèle est probablement incorrect. J'ai essayé le nom du fichier php et le nom de mon modèle et ils n'ont pas fonctionné. J'ai alors décidé d'inspecter la boîte de sélection des modèles où nous sélectionnons le modèle dans l'éditeur de page. J'ai trouvé ça:
<option value="templates-map/component-tutorial-1.php"
selected="selected">Tutorial -1</option>
J'ai utilisé templates-map/component-tutorial-1.php
et cela a fonctionné.
Si vous avez le modèle dans un autre dossier:
$args = array(
'post_type' => 'page', //it is a Page right?
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => '_wp_page_template',
'value' => 'page-templates/template-name.php', // folder + template name as stored in the dB
)
)
);