Le codex le définit comme 'Configurer les données globales de publication. Aide à formater les résultats de requête personnalisés pour l'utilisation de balises de modèle. ' Je ne comprends pas vraiment ça.
Voici un exemple de code:
global $post;
$args = array( 'numberposts' => -1);
$posts = get_posts($args);
foreach( $posts as $post) : setup_postdata($post);
echo $post->ID;
endforeach;
S'il vous plaît pouvez-vous expliquer?
Les fonctions de balise de modèle reposent sur des variables globales pour accéder à la publication en cours de traitement et récupérer les données correspondantes ou associées.
La variable principale d'entre eux est $post
qui contient l'objet post lui-même. Dans votre exemple, ce n'est pas explicite, mais ce qui se passe, c'est que votre boucle affecte des données à $post
. Si le nom pour l'itération n'était pas $post
, vous devrez le faire explicitement (global $post; $post = $some_other_post;
).
Cependant, il y a beaucoup d'autres globals et le but de setup_postdata()
est de les renseigner avec des données. Si vous regardez la source, ils sont:
global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages;
Notez que dans la plupart des cas, vous devriez appeler wp_reset_postdata()
pour remettre les globales à leur état initial.