web-dev-qa-db-fra.com

Flux RSS pour les messages contenant n'importe quel terme d'une taxonomie

J'imagine que la réponse à cette question sera liée à la question que j'ai posée hier:

Taxonomie personnalisée WP_Query pour tous les termes d'une taxonomie?

Je souhaite générer un flux RSS contenant toutes les publications auxquelles TOUTE entrée a été attribuée à partir d'une taxonomie particulière. Je peux le faire:

http://blog.example.com/feed/?taxonomy=taxonomy-name&term=test-term

Pour renvoyer toutes les publications affectées à un terme particulier, mais j'aimerais disposer d'un flux qui affiche toutes les publications de tous les termes de cette taxonomie.

Merci Dave

4
Dave Morris

La solution

WordPress 3.1 Taxonomy Feeds Plugin (doit utiliser)

Mettez ce plugin indispensable sur votre site et demandez:

http://blog.example.com/feed/?taxonomy=taxonomy-name

comme vous l'avez demandé.

Des informations détaillées

Wordpress propose de demander le flux avec plusieurs configurations. Trouver votre URL de flux (Codex Wordpress) montre ce qui est possible. En plus du flux standard (posts), vous pouvez avoir les éléments suivants:

  • Commentaires - http://example.com/?feed=commentsrss2
  • Catégories - http://example.com/?cat=42&feed=rss2
  • Tags - http://example.com/?tag=tagname&feed=rss2
  • Auteurs - http://example.com/author/authorname/feed/
  • Recherche - http://example.com/?s=searchterm&feed=rss2

(Remarque: RSS2 est le format de flux Wordpress'default)

Comme vous pouvez le constater, aucun exemple d'URL proposé ne concerne l'interrogation du flux sur les publications d'une taxonomie.

En général, le flux est comme n'importe quel autre article de blog ou commentaire: un WP_Query, puis l'exécution de la boucle dans un modèle de flux.

WP_Query prend en charge le paramètre de requête taxonomy par défaut. Ce paramètre de requête est est en quelque sorte documenté dans le codex , cette section pose deux problèmes: 1.) c'est sa taxonomie (pas de taxe) et la seconde 3.1 n'est pas encore publiée, elle n'est donc pas encore obsolète. Le lien que je lie à ce document est de montrer que sa valeur est comparée à celle des taxonomies.

Donc, pour savoir si WordPress peut facilement faire ce que vous voulez, vous devez savoir si le flux prend déjà en charge les taxonomies lorsqu’il demande une certaine catégorie. Je l'ai déjà fait, ce n'est pas le cas. Une requête de requête supplémentaire, var, est utilisée à la place: category_name.

Donc, pour le moment, le seul élément intéressant est que nous pouvons utiliser davantage le paramètre de requête taxonomy et lorsque Wordpress recherche une base de données de flux, elle est dans un mode de requête de catégorie héritée, et non dans un mode de requête de taxonomie. C'est un peu dommage car vous recherchez des taxonomies.

Respirez pour le moment

Parce que tu as besoin. Le problème ici avec Wordpress est que vous commencez maintenant à vous heurter aux entrailles les plus complexes du logiciel. Le paquet contient d’énormes fonctions complexes qui doivent être assimilées à du code de débogage: vous devez procéder étape par étape.

Ce faisant, vous aurez peut-être la chance de trouver un filtre ou un point d’accès que vous pourrez utiliser pour manipuler les valeurs et les rappels à la volée afin que la chose fasse ce que vous voulez. Mais le problème est que plus vous bricolez, plus le risque de casser des choses est élevé.

L’art est donc de trouver l’endroit le moins envahissant pour effectuer des changements.

Ajout du support pour les taxonomies

Ainsi, comme indiqué ci-dessus, le support pour les taxonomies doit être ajouté directement dans WP_Query. Cela peut être fait en se connectant à cette fonction et en modifiant les valeurs en le faisant.

Mais peut-on demander des taxonomies? Je ne pouvais pas trouver beaucoup d’informations antérieures à la 3.1. Il semble que même WordPress 3.0 prenne en charge les taxonomies personnalisées. Il n'était pas possible d'interroger les publications qui se trouvent dans une taxonomie spécifique selon le paramètre de requête.

Même dans mon banc d'essai 3.1, je n'ai pas été en mesure de mapper les paramètres de requête aux requêtes de taxonomie. Donc, même avec 3.1, cela pourrait ne pas être facile à faire.

La meilleure solution que je connaisse jusqu'à présent consiste à se connecter à WP_Query et à utiliser une requête de taxonomie personnalisée basée sur WordPress 3.1 , ici du code de maquette:

$myquery['tax_query'] = array(
    array(
        'taxonomy' => 'category',
    ),
);
query_posts($myquery);

Je sens que cela pourrait ne pas fonctionner, car nous ne demandons que la taxonomie. Vérifions cela en détail.

WP 3.1 Requête de taxonomie personnalisée pour la taxonomie uniquement

Pour le savoir, j’implémente un script simple qui se connecte à pre_get_posts et injecte la requête de taxonomie personnalisée WordPress 3.1 illustrée ci-dessus. Comme taxonomie, j’ai utilisé l’une des méthodes par défaut: category (Vous pouvez trouvez toutes les taxonomies par défaut ici ). Il y a beaucoup de PHP avertissements qui indiquent que cette fonctionnalité est fragile. Alors, soyez prévenus, ne vous attendez pas à ce que les choses se déroulent comme prévu.

Quoi qu'il en soit, j'ai testé cela et, pour faire une longue histoire mettant fin aux quickies, j'ai trouvé la solution qui consiste à saisir tous les termes, puis à les ajouter à la requête. Voici mon plug-in mu que j'ai utilisé jusqu'à présent: (posté ci-dessus), fait le travail pour moi.

6
hakre

ou utilisez simplement l'URL: feed: //www.myurl.org/feed? post_type = news & category_name = MyCategory

1
alexndm