Interrogation d’objets avec wp \\ u sans boucle
Il y a quelques semaines, j’ai beaucoup aimé l’article de David sur les bases de la programmation fonctionnelle, car il s’applique aux structures de données imbriquées WordPress. L’un des avantages de travailler avec lui est que j’ai aussi beaucoup appris. Aujourd’hui, je veux continuer à explorer le monde fonctionnel présenté par David et proposer des façons plus libres d’interagir avec une entité très importante dans WordPress: les objets de requête WP _ query. La requête wp \ U est un objet la requête wp \ u n’est pas une entité abstraite. Au sens programmatique, c’est un objet. Quand j’ai commencé à apprendre WordPress, la requête wp \ u était une abstraction mystérieuse: quelque chose que vous invoquez, comme un sort, afin que vous puissiez exécuter des fonctions comme _ Title () et content () dans une boucle personnalisée.
Cependant, la requête WP _ n’est pas une entité abstraite; C’est plutôt un objet au sens programmatique. Nous avons écrit les bases de la programmation orientée objet et objet; Résumons rapidement la discussion: chaque objet appartient à une classe plus grande que ces objets. Par exemple, un seul objet automobile appartient à la classe automobile. Chaque objet a quelque chose en commun avec les autres objets de sa classe. Ces points communs sont divisés en attributs et méthodes. Une propriété est quelque chose sur un objet donné. Pour les objets automobiles, l’attribut peut être couleur: la couleur elle – même est un attribut, et un objet automobile peut avoir rouge ou bleu comme valeur pour cet attribut. La méthode est ce qu’un objet donné peut faire. Les objets automobiles peuvent avoir des méthodes Drive () et STOP (). Regardons maintenant la requête WP _ elle – même. Tout objet de requête wp \ u a une liste complète d’attributs et de méthodes. Les propriétés de l’objet de requête wp \ u contiennent tous les types d’états et d’informations qui sont réellement stockés dans l’objet lui – même. Vous pouvez même les lire directement en utilisant Print _ R () en PHP:
Urn Build string return $return;} Obtenez l’objet de requête WP _ commençons par un simple appel et créons un objet de requête WP qui contient tous les messages appartenant à la catégorie Édition.
$args = array (‘Tax _ Query’ = > array (array (‘Taxonomy’ = > Category ‘,’ Field ‘= > Slug’, ‘terms’ = > Editorial’,), ‘posts per page’ = > – 1,) $ Query = new WP _ Query ($args); Si la requête WP _ est nouvelle pour vous ou si vous n’êtes pas familier avec le code ci – dessus, nous l’écrivons ici. L’attribut le plus important de l’objet de requête WP _ est les messages, en particulier pour nous. Cette propriété contient toutes les informations (titre du billet, auteur, date de publication, contenu, etc.) pour chaque billet récupéré par la requête. Poststocke toute cette information directement, tout comme une bibliothèque stocke des livres.
La première chose que nous devons faire est donc de créer une nouvelle variable $posts qui ne contient que le contenu de la requête WP _ qui nous intéresse, comme suit: $posts = $QUERY – > posts; Cela ne fait que réinitialiser le post lui – même que nous avons récupéré. (au fait, c’est exactement la même chose que d’appeler la fonction get _ posts () de WordPress en utilisant le même $args et de l’enregistrer sous $posts.) Array _ Map () – ing of Posts Array the posts Property of WP Query is like a library, and our WP post object is like a book. Que contient le billet? Il a une série d’objets WP _ Post: ces objets représentent les messages que nous Récupérons individuellement, chacun avec un ensemble différent d’attributs, tels que post title, post Extract et post content.
Par conséquent, les propriétés post de WP _ Query ressemblent à une étagère, et nos objets post de WP ressemblent à des livres séparés, chacun avec ses propres propriétés. Dans notre cas, nous ne nous intéressons qu’à deux attributs de chaque livre: le titre et le contenu. C’est là qu’il entre dans Array _ Map (). Comme David l’a expliqué, Array _ Map () est la méthode parfaite pour obtenir de grands tableaux comme le nôtre.
Ou WP _ post Object Array), ne laissant que les fragments dont nous avons besoin $ Posts = array _ Map (fonction ($post) {renvoie un tableau (‘post title’ = > $post – > Post title, ‘post content’ = > $post – > Post content,);} $ Position); Pour chaque $post dans $posts, il suffit de construire un nouveau tableau contenant deux éléments: Post _ title et post content. Par conséquent, nous sauvegardons tous ces résultats dans $post.
L’étape suivante consiste à Trier par la première lettre du titre. Puisque $posts est un tableau associatif, nous devons utiliser un usort un peu compliqué (). J’ai discuté de la priorité usort (). Il vous demande d’écrire une fonction de comparaison, puis de l’exécuter sur le tableau associatif que vous fournissez, de comparer et de trier tous les éléments du tableau. La fonction que nous écrivons est la suivante: Sans entrer dans les détails, cette fonction demande \
Usert ($posts, ‘wpshoutssortbycontent’); Tous nos messages seront classés par ordre alphabétique en fonction de leur contenu. Lors de la création d’une sortie en utilisant foreach () dans une requête wp \ u normale, nous utilisons des boucles personnalisées et des fonctions WordPress spécifiées telles que _ Title () et content (). Mais comme nous avons choisi les messages de façon personnalisée, nous pouvons utiliser la boucle foreach () pour déterminer la sortie à générer: $return = \
C’est une façon pratique de voir sur une page: Si vous voulez en savoir plus sur le Code court, lisez ici.)
Retourner ce texte est imprimé dans le contenu de la page avec le Code court inséré pour donner le résultat final. Le but de cet article est de proposer des méthodes pour faire confiance aux objets WP _ query, non pas comme un puzzle pour générer des boucles de zone de confort d’une manière ou d’une autre, mais comme un objet de programmation qui peut fonctionner librement au besoin. Espérons que cela aidera à éliminer certains obstacles lorsque les fonctionnalités par défaut de wordpress ne répondent pas à vos besoins. Merci pour votre lecture!
Crédit d’image: catalogue d’images