Je travaille sur un thème en ce moment et j'ai mis en place un modèle de publication.
Ce modèle de publication est lié à certains types de publication personnalisés.
Lorsque je query_posts pour mon type de publication sur le modèle de publication proprement dit, le contenu disparaît pour une raison quelconque? Y a-t-il quelque chose qui me manque ici?
Merci Mark
Ma boucle est la suivante:
<?php
$query = 'posts_per_page=10&post_type=articles';
$queryObject = new WP_Query($query);
// The Loop...
if ($queryObject->have_posts()) {
while ($queryObject->have_posts()) {
$queryObject->the_post(); the_title(); the_content();
}
}
?>
utilisez wp_reset_query
après votre boucle pour restaurer les données de publication globales de la boucle principale.
Par souci d'exhaustivité, bien que l'utilisation de wp_reset_query()
ne soit pas nécessairement fausse, il s'agit d'une opération supplémentaire inutile, si elle est exécutée après une requête secondaire avec une nouvelle instance de la classe WP_Query
. L'objet $wp_query
n'est pas modifié, il n'a donc pas besoin d'être réinitialisé. Seul le $post
global nécessite une réinitialisation. Par conséquent, wp_reset_postdata()
serait suffisant dans ce cas.
Voir /wp-includes/query.php pour référence:
/**
* Destroy the previous query and set up a new query.
*
* This should be used after {@link query_posts()} and before another {@link
* query_posts()}. This will remove obscure bugs that occur when the previous
* wp_query object is not destroyed properly before another is set up.
*
* @since 2.3.0
* @uses $wp_query
*/
function wp_reset_query() {
unset($GLOBALS['wp_query']);
$GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
wp_reset_postdata();
}
/**
* After looping through a separate query, this function restores
* the $post global to the current post in the main query
*
* @since 3.0.0
* @uses $wp_query
*/
function wp_reset_postdata() {
global $wp_query;
if ( !empty($wp_query->post) ) {
$GLOBALS['post'] = $wp_query->post;
setup_postdata($wp_query->post);
}
}