web-dev-qa-db-fra.com

wp_insert_term dans une installation multisite

je crée un thème qui crée des pages et définit des méta-valeurs et une extension d'activation du thème. Tout fonctionne très bien mais ...

J'ai besoin d'insérer quelques termes pour misc cpt dans une installation multisite.

J'ai essayé cette méthode:

switch_to_blog($blog_id);
wp_insert_term($move_type, 'jobtype');
restore_current_blog();

ne fonctionne pas. Des idées, ça vous tente?
Même une méthode DB serait géniale si vous en aviez une.

1
Sagive SEO

Je ne sais pas comment vous activez le thème sur le réseau, mais je considère ici le cas de l’installation d’un nouveau thème sur un réseau existant.

L'activation du thème sur un site unique insère le terme pour chaque site du réseau mais, bien sûr, le code d'enregistrement de la taxonomie devrait déjà y figurer.

Considérez cet exemple

function after_switch_theme_callback() {
    $blogs = wp_get_sites(); //Array of site Ids
    foreach ($blogs as $blog) {
        if (!empty($blog['blog_id'])) {
            switch_to_blog($blog['blog_id']);
            wp_insert_term('myTerm '.$blog['blog_id'], 'genre');
            restore_current_blog();
        }
    }
}
add_action('after_switch_theme', 'after_switch_theme_callback');

Cela me semble bien fonctionner.

Remarque:

Enregistrez votre taxonomie sur l'action init pour pouvoir insérer les termes ultérieurs sur l'action after_switch_theme.

1
Sumit