Можно ли добавлять термины таксономии только через админ-панель?

22 окт. 2013 г., 16:41:00
Просмотры: 121
Голосов: -2

Можно ли зарегистрировать термины таксономии программно из плагина? Я хочу добавить пользовательскую таксономию "Географический регион" и предварительно заполнить её списком регионов Великобритании.

public function sample_taxonomy() {
    // Создаем новую таксономию
    register_taxonomy(
        'resellers',
        'wps-reseller',
        array(
            'label' => __( 'Географические регионы' ),
            'rewrite' => array( 'slug' => 'area' ),
            'capabilities' => array(
                'assign_terms' => 'edit_guides',
                'edit_terms' => 'publish_guides'
            )
        )
    );
}

Также, как мне запустить этот код только один раз при активации плагина? Я использую функции активации из WordPress Plugin Boilerplate.

2
Комментарии

Вы уже искали на сайте?

kaiser kaiser
22 окт. 2013 г. 16:48:56

Похоже, недостаточно тщательно. Приношу извинения.

codecowboy codecowboy
22 окт. 2013 г. 17:04:42
Все ответы на вопрос 1
9

Думаю, вы ищете функцию wp_insert_term().

Пример из Codex:

$parent_term = term_exists( 'fruits', 'product' ); // возвращается массив, если указана таксономия
$parent_term_id = $parent_term['term_id']; // получаем числовой ID термина
wp_insert_term(
  'Яблоко', // термин 
  'product', // таксономия
  array(
    'description'=> 'Вкусное яблоко.',
    'slug' => 'apple',
    'parent'=> $parent_term_id
  )
);
22 окт. 2013 г. 16:51:41
Комментарии

Спасибо. Похоже, это то, что мне нужно. Если я добавлю это на хук 'init', как указано в codex, это будет выполняться при каждом запросе, так? Можно ли как-то запустить это только один раз?

codecowboy codecowboy
22 окт. 2013 г. 18:17:26

Да, вам не нужно, чтобы это выполнялось при каждой загрузке страницы, но вам нужно определить, когда именно это должно запускаться. Я не могу сказать вам это. При активации плагина? При сохранении записи? В какой-то другой момент?

s_ha_dum s_ha_dum
22 окт. 2013 г. 18:30:10

Я пробовал добавить это в функцию активации плагина, но, похоже, она не сработала.

codecowboy codecowboy
22 окт. 2013 г. 18:41:30

возможно, потому что пользовательский тип записи не существует при активации?

codecowboy codecowboy
22 окт. 2013 г. 19:06:11

Вы предоставили недостаточно кода/контекста, чтобы дать правильное решение для однократного выполнения этого кода (к тому же это не является частью исходного вопроса), но вам, вероятно, нужно подключить функцию при активации плагина, которая в свою очередь подключит вашу функцию "вставки терминов".

s_ha_dum s_ha_dum
22 окт. 2013 г. 19:09:46

Спасибо. Можете ли вы дать ссылку на авторитетный ресурс, который описывает, как подключить функцию при активации плагина?

codecowboy codecowboy
22 окт. 2013 г. 19:13:39

Как насчет этого? http://wordpress.stackexchange.com/search?q=plugin+activation

s_ha_dum s_ha_dum
22 окт. 2013 г. 19:18:09

Стоит отметить, что ваш вопрос получил отрицательные голоса и голоса за закрытие из-за недостаточных усилий в исследовании (как я предполагаю), и последний вопрос в комментариях страдает от той же ошибки. Пожалуйста, проведите собственное исследование.

s_ha_dum s_ha_dum
22 окт. 2013 г. 19:24:22

давайте продолжим обсуждение в чате

codecowboy codecowboy
23 окт. 2013 г. 12:04:39
Показать остальные 4 комментариев