我的术语可能会混淆,所以我希望你能跟进。
我有自定义帖子类型'套餐' 我已经设置了创建称为“添加包类型”
的类别的功能当我添加一个类别时,我希望仅在“添加包类型”时插入一个包含新类别标题的新页面。
我似乎无法使用以下代码获取类别标题,在$ taxonomy中我得到'添加包类型',这很好。但我希望该页面与我刚刚输入的标题同名。
谢谢
function custom_create_packages( $term_id, $tt_id, $taxonomy ){
if($taxonomy == 'package type'){
$new_page_title = $cat_title;
$new_page_content = 'This is the page content';
$new_page_template = ''; //ex. template-custom.php. Leave blank if you don't want a custom page template.
//don't change the code bellow, unless you know what you're doing
$page_check = get_page_by_title($new_page_title);
$new_page = array(
'post_type' => 'page',
'post_title' => $new_page_title,
'post_content' => $new_page_content,
'post_status' => 'publish',
'post_author' => 1,
);
if(!isset($page_check->ID)){
$new_page_id = wp_insert_post($new_page);
if(!empty($new_page_template)){
update_post_meta($new_page_id, '_wp_page_template', $new_page_template);
}
}
}
}
add_action( 'create_term', 'custom_create_packages', 10, 3 );
答案 0 :(得分:1)
如果我理解正确,您必须根据$term_id
参数检索该术语的详细信息。类似的东西:
function custom_create_packages( $term_id, $tt_id, $taxonomy ){
if($taxonomy == 'package_type'){
$term = get_term( $term_id, $taxonomy );
$new_page_title = $term->name;
我不知道你的代码中的分类法('package type')是否只是一个例子,但它不应该包含空格(参见the Codex)。
可能值得将您的操作从create_term
更改为create_{taxonomy}
(例如create_package_type
),以消除检查分类法的必要性。请注意,create_{taxonomy}
只有2个参数($term_id
和$tt_id
),因为分类已知。
我不确定,但是在created_{taxonomy}
钩子中调用你的函数可能会更安全(注意'd'),这是在调用clean_term_cache
函数后调用的(虽然给出了)这是一个新的条目,可能不会有所作为。)