Wordpress>创建类别为“未分类”的子项(catid = 1)

时间:2010-08-06 14:53:43

标签: wordpress categories

我的functions.php文件中有一个脚本,用于检查我的主题所需的几个类别是否存在,如果它们不存在,则创建它们......

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

我需要以两种方式修改这个脚本......

首先,我需要创建类别,使其父类别为“未分类”类别(或ID 1)。

其次,如果类别已经存在,但其父级不是id 1,我需要这样做。

2 个答案:

答案 0 :(得分:1)

首先,测试类别是否存在。如果是,请使用get_category_parents()获取现有类别的父母。

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

其次,wp_create_category()的second accepted argument是您希望指定为父类别的类别。

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

第三,如果该类别确实存在,您可以使用wp_update_term()来更改其属性。

wp_update_term( $term_id, $taxonomy, $args );

答案 1 :(得分:0)

回答您对我之前回答的评论中提出的问题...如何在用户激活您的主题时运行类别修改功能?

您需要使用动作挂钩。具体来说,'switch_theme'。这是all action hooks的codex页面,我无法专门链接到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文件中,它将永远不会运行,除非你的主题被激活,所以你可以确定是否需要仔细检查主题名称。