Aller au contenu principal

Shortcode de requête personnalisée

(Custom Query Shortcode)

J'ai souvent voulu exploiter la puissance des requêtes personnalisées dans mes sites WordPress, similaires au module views de Drupal, mais implémentées d'une manière facile à comprendre, à la manière de WordPress. J'ai d'abord commencé à écrire des requêtes personnalisées en utilisant WP_Query dans mes thèmes, mais idéalement vous voulez séparer la fonctionnalité de la présentation autant que possible, donc cela devrait être dans un plugin. Cela présente également l'avantage de rendre la fonction disponible quel que soit le thème utilisé. 

Le premier plugin que j'ai utilisé est Query Wrangler. Il s'agit d'un plugin puissant, qui s'inspire directement du module Views de Drupal. Bien qu'il ait fait le travail, il était un peu trop proche de Drupal à mon goût, avec une interface extrêmement compliquée (très peu WordPress, IMHO). De plus, je l'ai trouvé un peu bogué et difficile à thématiser. 

J'ai ensuite essayé Query Shortcode, qui implémente la fonctionnalité WP_Query sous forme de shortcode. L'utilisation de shortcodes est utile dans la mesure où si vous connaissez les différents paramètres utilisés dans WP_Query, vous pouvez rapidement construire vos requêtes personnalisées. Cela vous permet également d'intégrer des requêtes dans le corps d'une page ou d'un article. L'inconvénient majeur est qu'il n'a pas d'interface utilisateur, vous devez utiliser la syntaxe du shortcode, donc il peut ne pas être convivial pour les nouveaux utilisateurs de WordPress ou ceux qui ne sont pas familiers avec les shortcodes ou WP_Query. Personnellement, je pense que c'est une excellente approche, car je suis assez à l'aise avec les deux. Le plugin vous permet également de personnaliser la sortie des résultats, soit en ligne avec html, soit à travers des modèles personnalisés, ou "lentilles", comme ils sont appelés dans ce plugin. Vous pouvez même afficher vos résultats en utilisant les composants de Bootstrap - Tabs, Accordion, ou Carousel, ce qui le rend assez facile à intégrer dans un thème basé sur Bootstrap. 

Exemple de HTML en ligne :

[query posts_per_page="5" cat="3"]
{TITLE} ({COMMENT_COUNT})
[/query]

Exemple d'utilisation d'une "lentille" (modèle) - paramètre « lens »:

[query posts_per_page="5" featured="true" lens="carousel"]

J'aimais beaucoup ce plugin, mais j'ai remarqué qu'il n'avait pas été mis à jour depuis un certain temps. J'ai pensé qu'il pourrait utiliser plus de lentilles ou de modèles pour être vraiment utile, alors j'ai fait une fourche du plugin et j'ai fait mes propres personnalisations.

  1. J'ai ajouté quelques lentilles (modèles) utiles :
    • liste non ordonnée de titres d'articles liés
    • liste non ordonnée avec le titre lié et la date de publication
    • extrait d'article (titre lié, image vedette, extrait)
    • extrait d'article avec la date de publication
  2. a fait en sorte que le plugin recherche également des lentilles dans le répertoire du thème actuel (dans un sous-dossier 'partials/custom-query-lenses').
  3. Comme WordPress n'autorise pas les shortcodes dans les zones de widgets par défaut, j'ai ajouté un filtre pour permettre cela.
Type de projet
Languages
Étiquettes