Configuration _ postdata (): balise de modèle requise, tableau WP post personnalisé requis
Setup _ postdata () vous permet de traiter n’importe quel paquet de messages de la manière habituelle avec les résultats de la requête WP query. Setup _ postdata () est une fonctionnalité que j’aime beaucoup chez WordPress car elle vous permet d’utiliser n’importe quel paquet Post et la boucle foreach () comme vous le feriez normalement avec les résultats des requêtes WP et des boucles personnalisées. Cet article explique le sens de cette phrase et son intérêt, ainsi que quelques exemples d’utilisation. J’aime vraiment la fonctionnalité de configuration _ postdata de WordPress, donc si vous n’êtes pas familier, je vous recommande fortement de continuer à suivre
Définition de \
Lorsque nous disons \
Code Postal. (donc un post qui commence par \
Il est facile d’obtenir nos messages de la catégorie Édition. Pour ce faire dans un autre article, nous avons écrit une requête WP _ personnalisée, de sorte que nous ne conservons que l’objet WP post stocké dans l’attribut posts de l’objet WP Query (le reste de l’information dans la requête Wp est éliminé). Cette fois – ci, pour plus d’efficacité, nous utiliserons une fonction plus simple, get _ posts (), qui ressemble à WP query, mais ne récupère d’abord que l’objet WP post. Voici son apparence: \/ \/ Fetch posts $args = array (‘Tax _ Query’ = > array (array (‘Taxonomy’ = > Category ‘,’ Field ‘= > Slug’, ‘terms’ = > Editorial’), ‘posts per page’ = > – 1,) $ Posts = get _ posts ($args); Ce que nous allons faire ensuite, c’est expliquer quelques tours de magie dans un autre article:
Définir la fonction de tri wpshout _ sort by content ($a, $b) {renvoie strcmp (WP Strip all tags ($a – > Post content), WP Strip all tags ($B – > Post content);} \/ \/ Trier les messages en utilisant ($posts, ‘wpshout _ sort by Content’); Et violet!
Pourquoi Setup _ postdata () est – il intéressant: comment continuer l’exemple ci – dessus en utilisant la balise Template dans foreach (): supposons que nous voulions maintenant construire un modèle de page d’archive pour afficher les données qui viennent d’être récupérées. Comment y arriver? Nous pouvons utiliser des balises de modèles WordPress comme _ Title () et content (), comme dans les boucles par défaut ou les boucles construites autour de WP
Personnaliser la requête? Notez que la méthode Loop nécessite un objet de requête WP _ query. Nous ne l’avons pas du tout: Nous avons un tableau d’objets de type WP _ post. Il est donc impossible d’utiliser des boucles (qui ressemblent à while ($posts – > have _ Post ()), etc.).
Foreach () passe par l’objet Post et nous devons utiliser la boucle PHP foreach (). Voici comment faire défiler le tableau PHP, y compris le tableau ordonné des messages que nous venons de créer en utilisant les méthodes de la section précédente. On dirait: Foreach ($posts as $Current _ post): \/ \/ effectuez quelques opérations sur chaque Post, appelé $Current post dans la boucle endforeach; Mais pouvons – nous utiliser l’étiquette du modèle? Non, ce ne sont généralement que des boucles. Par exemple, si nous mettons _ Title () dans la boucle, il ne renvoie que void, ou le même titre incorrect via l’itération foreach (). Si nous maintenons cet état, nous ne pourrons pas faire directement référence aux propriétés de l’objet wp \ u post, par exemple:
Foreach ($published as $Current _ post): echo $Current post – > Post title; Echo wpautop ($Current _ post – > Post content); Fin avant chaque; Cela présente un inconvénient: les fonctions WordPress (par exemple wpautop ()) s’exécutent automatiquement sur les balises Template (par exemple _ content ()) et ne s’exécutent que si nous les appelons manuellement. Cela comprend également d’importantes fonctions d’évacuation en toute sécurité. Les fonctions personnalisées (du sujet et du plug – in) attachées à un filtre, comme _ title, ne s’exécuteront pas. C’est plus difficile à écrire et à lire. Setup _ postdata () pour sauvegarder toutes ces restaurations, je peux maintenant vous montrer les avantages de Setup postdata (). Voir le code suivant: Global $post \/ \/ Appeler la variable $post globale foreach ($posts as $Current _ post): $post = $Current post \/ \/ Définissez la variable $post global à la configuration actuelle de l’objet post \ \ u postdata ($post) \/ Définir l’environnement pour l’étiquette du modèle \/ \/ habituellement utiliser l’étiquette du modèle _ Title ()
Nd. Après cela, nous lancerons WP _ Reset postdata () comme après avoir personnalisé la requête WP pour la même raison: Nous voulons \
Stri Post \