web-dev-qa-db-fra.com

wp_insert_term ne fonctionne pas avec la taxonomie de type d'article personnalisé

Voici le problème que je rencontre:

  1. J'ai un type de message personnalisé appelé "mariage"
  2. Ce type de message personnalisé "weddingguests" a une taxonomie personnalisée, "friendsof", hierarchic
  3. Je veux insérer par programme dans cette taxonomie personnalisée "friendsof" 2 termes: "Amis de la mariée" et "Amis du marié"

Voici la fonction et l'action que j'utilise pour insérer un terme:

// programatically add 2 terms to the taxonomy "FRIENDS OF"
function example_insert_category() {
    wp_insert_term(
        'Example Category',
        'friendsof'
    );
}
add_action( 'after_setup_theme', 'example_insert_category' );

Le problème: wp_insert_term ne semble pas fonctionner avec ma taxonomie personnalisée

Ce que j'ai essayé

  1. J'ai essayé de passer de la taxonomie hiérarchique à non hiérarchique - cela n'a pas fonctionné
  2. J'ai essayé d'utiliser wp_insert_term (le même code) pour ajouter des termes à l'article "category" - cela fonctionne
  3. J'ai essayé d'attribuer la taxonomie personnalisée "friendsof" aux publications, puis d'ajouter mon terme (je pensais que la façon dont je construisais mes types de publication personnalisée posait problème) - cela ne fonctionnait pas.
4
Gabriela

essayez init au lieu de after_setup_theme

function example_insert_category() {
    wp_insert_term(
        'Example Category',
        'friendsof'
    );
}

add_action( 'init', 'example_insert_category' );
3
Mhon Lie

Bien que je ne sache pas pourquoi et que je n’ai pas le temps d’enquêter maintenant, le crochet que vous avez choisi est trop tôt. Votre code fonctionne si vous utilisez, par exemple, init au lieu de after_setup_theme.

De plus, comme écrit, votre code s'exécute à chaque chargement de page, ce qui est un peu excessif. Il devrait y avoir un moyen d’exécuter ceci uniquement lors de l’activation du plugin ou peut-être lors d’un changement de thème - ce qui réduit la fréquence d’exécution. Le meilleur des cas est peut-être un bouton dans le thème/plugin pour "Remplir les valeurs par défaut". Une fois que cela fonctionne une fois, ce n'est plus nécessaire car les données sont dans la base de données.

2
s_ha_dum