web-dev-qa-db-fra.com

Obtenir des messages de l'URL de taxonomie

Comment puis-je obtenir les publications d'une taxonomie personnalisée en utilisant l'URL pour déterminer quel identifiant de terme de taxonomie est affiché?

J'ai essayé d'obtenir des publications via une catégorie en utilisant get_category_by_path qui renvoyait la valeur false lors du transfert de l'URL car la taxonomie personnalisée n'était pas la même. Existe-t-il une fonction équivalente qui ferait cela pour les taxonomies? J'ai google et scanné le codex Wordpress et rien trouvé.

Merci beaucoup

1
Stefan Dunn

Donc, je prends quelques libertés avec ça, je suppose deux choses:

  1. Vous connaissez la taxonomie à laquelle le terme appartient
  2. Vous avez le lien archive terme

Donc, si j'ai le lien d'archive terme:

$url = 'http://www.example.com/taxonomy/term/';

Je sais que la dernière partie de cette URL sera les termes slug. Je peux utiliser le slug avec la taxonomie et obtenir l'ID mais je dois d'abord scinder les parties:

$parts = explode('/', rtrim($url, '/')); // rtrim() to remove trailing slash

Cela divise le tout en un tableau Nice qui ressemble à ceci:

Array ( 
    [0] => http: 
    [1] => 
    [2] => www.example.com
    [3] => taxonomy 
    [4] => term 
)

Notez que le terme slug est le dernier élément de ce tableau, ce qui est important pour que nous puissions y accéder ultérieurement sans connaître réellement l'index.

Ensuite, nous pouvons utiliser la fonction astucieuse appelée get_term_by() - View Codex , ce qui nous permettra d'extraire le terme complet en fonction des termes slug et de la taxonomie du terme. est en. qui ressemble à ceci:

$term = get_term_by('slug', $parts[count($parts)-1], 'tax_articles');

Et voilà, cela va tirer le terme basé sur le slug que nous avons trouvé dans l'URL.

1
Howdy_McGee