在主题激活时创建Wordpress类别

时间:2011-12-05 17:33:58

标签: wordpress categories

我将创建一个函数来检查名为 Testimonials 的类别是否已经可用。如果可用,请注意,如果不存在,则创建名为 Testimonials 的新类别。我正在使用以下代码,但在主题激活时没有任何反应。缺少什么?

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 个答案:

答案 0 :(得分:7)

创建新类别时,操作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' );

答案 1 :(得分:0)

注意:如果您已经使用了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' );