Wordpress> Создать категорию как дочерний элемент "uncategorized" (catid = 1) - PullRequest
0 голосов
/ 06 августа 2010

В моем файле functions.php есть скрипт, который проверяет наличие нескольких категорий, необходимых для моей темы, и, если их нет, создает их ...

if(!get_cat_ID('my-category')){wp_create_category('my-category');}

Мне нужно изменить этот сценарий двумя способами ...

Во-первых, мне нужно создать категорию, чтобы ее родительская категория была категорией "Без категории" (или идентификатором 1).* Во-вторых, если категория уже существует, но ее родитель не ID 1, мне нужно сделать это так.

Ответы [ 2 ]

1 голос
/ 06 августа 2010

Сначала проверьте, существует ли категория.Если это так, используйте get_category_parents () , чтобы получить родителей существующей категории.

$parentID = get_category_parents(my-category-ID, false);

Во-вторых, второй принятый аргумент функции wp_create_category () являетсякатегория, которую вы хотите назначить в качестве родительской категории.

if(!get_cat_ID('my-category')){wp_create_category('my-category',parent category ID);}

В-третьих, если категория существует, вы можете использовать wp_update_term () для изменения ее атрибутов.

wp_update_term( $term_id, $taxonomy, $args );
0 голосов
/ 07 августа 2010

Чтобы ответить на вопрос, заданный в вашем комментарии к моему предыдущему ответу ... Как запустить функцию изменения категории, когда пользователь активирует вашу тему?

Вы захотите использовать ловушку действия. В частности, «switch_theme». Это страница кодекса для всех хуков действий , я не могу связать конкретно с switch_theme, но прокрутите вниз, и вы найдете его. Конкретной информации об этом хуке нет, но использование простое. Вы можете включить вашу функцию в functions.php или в файл плагина, и после определения функции включите this hook :

function add_my_categories($my-theme-name){
        //if $my-theme-name == 'my_theme_name
            //test if category exists
            //if exists, update
            //if doesn't exist, create and assign parent
    }
add_action('switch_theme','add_my_categories');

вызов add_action () запускает именованную функцию, когда именованный хук встречается в wordpress. Хук switch_theme запускается после смены темы.

Важно знать, что этот хук предоставит имя новой текущей темы для вашей функции, которая может принять его в качестве аргумента, если вам это нужно. Например, чтобы убедиться, что функция запускается, только если ваша тема активирована. Я полагаю, если эта функция находится в файле functions.php вашей темы, она НИКОГДА не запустится, если ваша тема не активирована, поэтому вы можете определить, нужно ли вам дважды проверять имя темы.

...