web-dev-qa-db-fra.com

get_term_by ne fonctionne pas dans functions.php

J'ai un problème étrange avec get_term_by (). Cela fonctionne bien lorsque je l'utilise dans un modèle, mais lorsque je l'utilise dans functions.php, il renvoie simplement false.

$term = get_term_by('slug', 'some-term', 'some-taxonomy');
var_dump($term);

Toute explication quant à pourquoi cela se produirait serait grandement appréciée.

2
Andrei

Cela se produit probablement car la taxonomie que vous essayez d'interroger est déjà enregistrée. Par exemple. L'environnement WordPress est chargé lors du chargement du fichier functions.php d'un thème, mais de nombreux plugins/thèmes/fonctions principales n'enregistrent pas les taxonomies avant.

Essayez de vous connecter à init avec un numéro de priorité vraiment élevé et d’exécuter la fonction get_term_by. Ainsi:

<?php
add_action( 'init', 'wpse27111_tester', 999 );
function wpse27111_tester()
{
    $term = get_term_by('slug', 'some-term', 'some-taxonomy');
    var_dump($term);
}
3
chrisguitarguy