Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Tutoriel sur le thème WordPress pour les débutants – Partie 12 : Requête de publication personnalisée

17

Dans cette dernière leçon, nous apprenons à écrire votre propre requête de messages et à les parcourir sans interrompre la boucle parent dans le modèle. Nous allons créer une partie de modèle pour les articles uniques qui affiche les articles associés dans la même catégorie.

Ce que nous allons faire dans cette leçon est une requête de publications associées dans notre vue de publication unique, montrant un maximum de 3 publications, de type publication, dans la ou les mêmes catégories que la publication dans laquelle nous nous trouvons, exclure la publication actuelle elle-même, et randomiser les messages affichés. Nous examinerons également des stratégies pour ne pas gâcher la boucle imbriquée.

Modèle d’articles connexes

Faisons des articles associés une partie du modèle, dont nous avons entendu parler dans la partie 10. De cette façon, nous ne compliquons pas trop single.phpet rendons notre code plus réutilisable. Placez la demande de cette nouvelle partie de modèle où vous le souhaitez. Je le placerai juste avant de demander le modèle de commentaires :

Maintenant, créons un nouveau fichier vide dans notre dossier de thème et nommons-le related-posts.php. Avec ce fichier, nous sommes prêts à plonger dans la création d’une requête de publication personnalisée.

Requête de publication personnalisée

Si vous souhaitez effectuer une requête personnalisée de messages, vous avez quelques options, mais je vous recommande de vous habituer à la classe WP_Query. Ajoutez cette page de documentation à vos favoris car vous y ferez fréquemment référence, car il y a tellement d’options. Je vais vous montrer un exemple pratique de mise en place d’une requête en me référant à la documentation de chaque spécification que nous voulons ajouter.

Si vous voulez en savoir plus sur la façon d’interroger les messages, j’ai un article qui va en profondeur à ce sujet.

Afin de créer une requête de publication personnalisée, nous appellerons new WP_Query(), lui transmettrons un tableau d’arguments et stockerons son résultat dans une variable. Et ensuite, nous utiliserons exactement la même boucle que celle que nous avons utilisée auparavant dans nos modèles (jetez un coup d’œil à la boucle d’origine ici pour comparer). Mais nous devons dire à la boucle de passer par la variable, au lieu de la globale (qui est le poste unique).

Voici à quoi ressemblera la boucle lors de son ajout à une requête personnalisée :

Comme vous pouvez le voir, la boucle est exactement la même, en utilisant have_postset the_post. La différence est que nous les appelons sur l’ $related_postsobjet. Si nous sautons la $related_postspartie, WordPress suppose automatiquement qu’il s’agit de la requête globale des publications.

Vous remarquerez peut-être également l’appel de la fonction wp_reset_postdata()juste après la boucle. C’est ainsi que nous "nettoyons après nous-mêmes" après une requête personnalisée avec WP_Query. N’oubliez pas que cela configure l’objet de publication global afin que the_post()nous puissions utiliser the_title()etc. single.phpnous nettoyons et réinitialisons la publication à la publication unique une fois que nous avons terminé. Si nous ne réinitialisons pas les données postées, tout ce qui suit fera référence à la dernière publication connexe que nous avons parcourue. Cela peut être un gros problème ! Dans notre exemple, nous avoir un modèle de commentaires qui suit ceci. En omettant la réinitialisation, le modèle de commentaire affichera les commentaires du dernier message associé dans la boucle. Et pas le seul message que nous examinons réellement !

Implémentation de notre boucle personnalisée

Très bien, commençons à implémenter la boucle personnalisée dans notre fichier related-posts.php. J’ai ajouté un wrapper et un titre, mais comme d’habitude vous pouvez ajuster le HTML comme vous le souhaitez :

Nous allons maintenant voir la puissance de la réutilisation dans les pièces de modèle. Disons qu’à l’intérieur de cette boucle personnalisée, nous voulons afficher exactement le même contenu que dans notre content-loop.php, que nous utilisons dans nos modèles d’archive. Tout ce que nous avons à faire est de demander cette partie de modèle dans notre boucle personnalisée, nous sommes tous prêts à gérer la sortie de chaque publication !

Il ne reste plus qu’à ajouter les arguments à notre requête post, en s’assurant que nous récupérons ce que nous voulons. Passons en revue les arguments un par un.

Construire les arguments de notre requête de publication personnalisée

Nous ne voulons pas récupérer plus de messages que 3. Dans la documentation (section "Paramètres de pagination"), l’argument pour cela est posts_per_page. Nous ajoutons donc l’élément de tableau :

Nous voulons nous assurer que WordPress récupère les publications, et non les pages ou autre chose. Dans «Post type parameters» on trouve :

Nous voulons empêcher que la publication unique à laquelle nous nous trouvons n’apparaisse dans notre requête de publications connexes, car cela n’a aucun sens, n’est-ce pas ? La documentation nous indique dans «Post & Page parameters» que l’on peut ajouter l’ID de publication dans un tableau pour post__not_in:

Nous voulons également randomiser les messages ; car par défaut, il récupérera les derniers messages publiés et cela peut rapidement devenir assez répétitif au fur et à mesure que vous parcourez les messages. Heureusement, WordPress a une fonction pour cela dans la façon dont il ordonne les publications ; dans «Ordre et ordre par paramètres» on trouve :

Enfin, nous souhaitons interroger les publications appartenant aux mêmes catégories que la publication dans laquelle nous nous trouvons. Pour ce faire, nous devons d’abord, avant les arguments de requête, obtenir les catégories au poste unique où nous nous trouvons. Dans "Paramètres de catégorie", nous voyons que nous pouvons fournir un tableau d’ID de catégorie à category__in. Heureusement, WordPress a une fonction pour obtenir les identifiants de catégorie pour un article ; wp_get_post_categories()que nous pouvons utiliser directement comme valeur du paramètre. Parfait!

Voici la requête finale et ses arguments :

Actualisez et vous devriez voir 3 messages répertoriés au bas de la vue unique. Actualisez plusieurs fois pour voir qu’ils changent parce que nous avons dit à WordPress de les randomiser. Remarque: Si vous avez moins de 3 messages dans la même catégorie, vous obtiendrez moins de 3 messages.

C’est ça! Vous savez maintenant comment interroger les messages que vous souhaitez. La page de documentation WP_Query est extrêmement utile pour peaufiner votre requête, car ce sont vraiment des possibilités illimitées ici. Je vous encourage à jouer avec les paramètres et peut-être à essayer de créer une partie de modèle distincte à utiliser pour les publications connexes.

Source d’enregistrement: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More