2015-12-17 7 views
0

У меня есть пользовательские свойства типа почтового сообщения, и в нем я создал пользовательскую таксономию под названием «Позиция», и внутри нее я хочу создать некоторые термины, которые я создал термином «слайдер», используя следующий код и работает отлично.Создание терминов в пользовательской таксономии WordPress

function realestatepro_custom_terms() { 

    wp_insert_term(
     'Slider', // the term 
     'Position', // the taxonomy 
      array(
      'description'=> 'Will be featured in the home page slider.', 
      'slug' => 'home-page-slider' 
     ) 
    ); 


} 

add_action('init', 'realestatepro_custom_terms'); 

Но я хочу, чтобы создать больше терминов, как Рекомендуемые и Повышен, но я не знаю, как, я рассматривать только повторял весь wp_insert_terms блок, но это не кажется правильным, то я попытался просто добавить другой термин сразу после первого, но это просто не сработало.

Кто-нибудь знает, как лучше всего добавить несколько терминов?

+0

В администраторе WordPress должен быть интерфейс для добавления терминов в таксономию. –

+0

@JamesJones Я хочу сделать это программно, так что термины - это их, когда тема установлена. – Naz

ответ

1

wp_insert_term() - это большая функция с большим количеством очистки, действий и проверки ошибок. Не существует такой версии, которая повторяется. Поэтому вам придется обернуть wp_insert_term() в цикл foreach.

function realestatepro_custom_terms() { 

    $terms = array(
     'Slider' => array(
     'description'=> 'Will be featured in the home page slider.', 
     'slug' => 'home-page-slider' 
    ), 
     'Featured' => array(/*properties*/ 
    ), 
     'Promoted' => array(/*properties*/ 
    ) 
    ); 
    foreach($terms as $term => $meta){ 
     wp_insert_term(
      $term, // the term 
      'Position', // the taxonomy 
      $meta 
     ); 
    } 
} 
add_action('init', 'realestatepro_custom_terms'); 

Другая возможность заключается в том, вы можете использовать wp_set_object_terms() так:

$terms = array('Featured', 'Promoted', 'Slider'); 
wp_set_object_terms($object_id, $terms, 'Position'); 

где $ object_id фиктивный Properties размещать создать. После добавления условий вы можете удалить сообщение. Проблема здесь в том, что вы не можете установить какой-либо термин meta, как slug или description. Кроме того, функция wp_set_object_terms() просто содержит цикл foreach с wp_insert_term(), который аналогичен первому решению. Это не слишком эффектно. Я не рекомендую этот второй вариант, просто упомянув для интереса.

Смежные вопросы