我的functions.php文件中有一个脚本,用于检查我的主题所需的几个类别是否存在,如果它们不存在,则创建它们......
if(!get_cat_ID('my-category')){wp_create_category('my-category');}
我需要以两种方式修改这个脚本......
首先,我需要创建类别,使其父类别为“未分类”类别(或ID 1)。
其次,如果类别已经存在,但其父级不是id 1,我需要这样做。
答案 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文件中,它将永远不会运行,除非你的主题被激活,所以你可以确定是否需要仔细检查主题名称。