2013-05-21 12 views
0

Я создаю две категории в пределах моего functions.php файла, когда мой Wordpress тема активируется следующим образом:Получить идентификатор категории после создания категории - WordPress

/** 
* @desc Create categories on theme activation 
**/ 
function create_my_cat() { 
if (file_exists (ABSPATH.'/wp-admin/includes/taxonomy.php')) { 
    require_once (ABSPATH.'/wp-admin/includes/taxonomy.php'); 
    if (! get_cat_ID('Work')) { 
     wp_create_category('Work'); 
    } 
    if (! get_cat_ID('Blog')) { 
     wp_create_category('Blog'); 
    } 
} 
} 
add_action ('after_setup_theme', 'create_my_cat'); 

Если две категории Работа и блог не существует, создать но если они уже существуют, ничего не делайте.

Как получить идентификаторы этих двух новых категорий при их создании/если они уже существуют? Мне нужно сохранить их как две отдельные переменные ($ work & $ blog), если это возможно, чтобы я мог повторно использовать их в одном файле.

ответ

1

из WordPress manual

wp_create_category($cat_name, $parent): 
  • Возвращает 0 в случае неудачи, идентификатор категории на успех.
  • Если категория уже существует, она не дублируется. Идентификатор исходной существующей категории возвращается без ошибок.
$work = wp_create_category('Work'); 
$blog = wp_create_category('Blog'); 

Я проверил поведение и работает точно так же, как написано в инструкции

+0

Спасибо за ваш ответ. Являются ли функции переменных конкретными? Как и в, я использовал ваш код, и он работает, но я пытаюсь использовать переменную $ work в другой функции, но это не работает ... Смутно! Можете ли вы использовать переменные в массивах? – egr103

+0

Переменные являются локальными, если вы хотите, чтобы они были глобальными, добавьте 'global $ work;' в начале всех функций, которым требуется переменная $ work, включая функцию create_my_cat(). И, конечно же, вы можете сохранить их в массиве и использовать что-то вроде 'global $ myArray;' – Danijel

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