web-dev-qa-db-fra.com

wp_get_post_terms () retourne WP_Error dans functions.php mais dans un template cela fonctionne

$my_post_id = 644;
$areas = wp_get_post_terms( $my_post_id, 'area-trabajo' );
var_dump($areas);

Ce code, dans functions.php, renvoie:

object(WP_Error)#3178 (2) { ["errors"]=> array(1) { ["invalid_taxonomy"]=> array(1) { [0]=> string(20) "Taxonomia no válida" } } ["error_data"]=> array(0) { } }

Mais dans un modèle, renvoie le résultat attendu:

array(1) { [0]=> object(WP_Term)#7194 (11) { ["term_id"]=> int(150) ["name"]=> string(13) "Restauración" ["slug"]=> string(12) "restauracion" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(150) ["taxonomy"]=> string(12) "area-trabajo" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(1) ["filter"]=> string(3) "raw" ["term_order"]=> string(1) "0" } }

Quelle pourrait être la raison pour laquelle dans functions.php renvoie invalid_taxonomy?

2
Toni Michel Caubet

Si vous exportez le code dans functions.php, la taxonomie personnalisée n'a pas été enregistrée, car il est déconseillé d'enregistrer des taxonomies personnalisées antérieures au hook init.

L'exécution du code dans les fichiers de hiérarchie de modèle devrait fonctionner car elle est postérieure à init.

Si vous souhaitez l'exécuter dans le fichier functions.php, assurez-vous de l'accrocher en conséquence.

1
birgire