Создание категории Wordpress во время активации темы - PullRequest
1 голос
/ 05 декабря 2011

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

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('testimonials')) {
            wp_create_category('testimonials');
        }
    }
}
add_action ('create_category', 'create_my_cat');

Ответы [ 2 ]

7 голосов
/ 05 декабря 2011

Действие create_category запускается при создании новой категории.

Вы хотите, чтобы функция создания категории выполнялась при активации темы.Соответствующее действие: after_setup_theme.

Добавьте это в functions.php вашей темы, и вы должны хорошо выполнить:

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( 'Testimonials' ) ) {
            wp_create_category( 'Testimonials' );
        }
    }
}
add_action ( 'after_setup_theme', 'create_my_cat' );
0 голосов
/ 06 января 2016

Примечание. Если вы уже использовали функцию my_theme_name_setup () {}, вам не нужна другая функция.Еще одна * заметка для упоминания;Вы также можете использовать category_exists вместо get_cat_ID (), поэтому полный пример кода:

function my_theme_name_setup() {

    if( file_exists( ABSPATH . '/wp-admin/includes/taxonomy.php' ) ) :
        require_once( ABSPATH . '/wp-admin/includes/taxonomy.php' );

            if( ! category_exists( 'name' ) ) :

                wp_create_category( 'name' );

            endif;// Category exists

    endif;// File exists 

}
add_action( 'after_setup_theme', 'my_theme_name_setup' );
...