wordpress在添加时获得术语标题

时间:2013-10-03 23:56:27

标签: wordpress

我的术语可能会混淆,所以我希望你能跟进。

我有自定义帖子类型'套餐' 我已经设置了创建称为“添加包类型”

的类别的功能

当我添加一个类别时,我希望仅在“添加包类型”时插入一个包含新类别标题的新页面。

我似乎无法使用以下代码获取类别标题,在$ 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 );

1 个答案:

答案 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函数后调用的(虽然给出了)这是一个新的条目,可能不会有所作为。)