Ich habe verschiedene Möglichkeiten ausprobiert, dies zu tun. Grundsätzlich habe ich versucht, es so zu gestalten, dass ein Plugin von mir die Begriffe einer Taxonomie nur einmal während der Aktivierung des Plugins auffüllt. Der Begriff Auffüllen erfolgt in einer Funktion über die Funktion wp_insert_terms. Das Aufrufen der Funktion direkt im register_activation_hook scheint nicht zu funktionieren, und das Verknüpfen mit dem init-Hook über den register_activation_hook funktioniert auch nicht. Hat jemand irgendwelche Ideen?
Hier ist eine Version meines Codes
//version 1
class vsetup {
function __construct() {
register_activation_hook(__FILE__,array($this,'activate'));
$this->create_taxonomies();
}
function activate() {
wp_insert_term('Action','genre');
wp_insert_term('Adventure','genre');
}
function create_taxonomies() {
$genre_args = array(
'hierarchical' => true,
'labels' => array(
'name'=> _x('Genres', 'taxonomy general name' ),
'singular_name' => _x('Genre', 'taxonomy singular name'),
'search_items' => __('Search Genres'),
'popular_items' => __('Popular Genres'),
'all_items' => __('All Genres'),
'edit_item' => __('Edit Genre'),
'edit_item' => __('Edit Genre'),
'update_item' => __('Update Genre'),
'add_new_item' => __('Add New Genre'),
'new_item_name' => __('New Genre Name'),
'separate_items_with_commas' => __('Seperate Genres with Commas'),
'add_or_remove_items' => __('Add or Remove Genres'),
'choose_from_most_used' => __('Choose from Most Used Genres')
),
'query_var' => true,
'rewrite' => array('slug' =>'genre')
);
register_taxonomy('genre', 'post',$genre_args);
}
}
Als das nicht funktionierte, habe ich Folgendes versucht:
//version 2
class vsetup {
function __construct() {
register_activation_hook(__FILE__,array($this,'activate'));
$this->create_taxonomies();
}
function activate() {
add_action('init', array($this,'populate_taxonomies'));
}
function create_taxonomies() {
$genre_args = array(
'hierarchical' => true,
'labels' => array(
'name'=> _x('Genres', 'taxonomy general name' ),
'singular_name' => _x('Genre', 'taxonomy singular name'),
'search_items' => __('Search Genres'),
'popular_items' => __('Popular Genres'),
'all_items' => __('All Genres'),
'edit_item' => __('Edit Genre'),
'edit_item' => __('Edit Genre'),
'update_item' => __('Update Genre'),
'add_new_item' => __('Add New Genre'),
'new_item_name' => __('New Genre Name'),
'separate_items_with_commas' => __('Seperate Genres with Commas'),
'add_or_remove_items' => __('Add or Remove Genres'),
'choose_from_most_used' => __('Choose from Most Used Genres')
),
'query_var' => true,
'rewrite' => array('slug' =>'genre')
);
register_taxonomy('genre', 'post',$genre_args);
}
function populate_taxonomies() {
wp_insert_term('Action','genre');
wp_insert_term('Adventure','genre');
}
}
Bisher hat keine der beiden Ideen für mich funktioniert.