自定义Post Type 实例二 – By piklist

      接上次实例,因为lanegie 项目中的category和tags都是自定义的,所以也用piklist来实现,当中的用到piklist的add_more属性,在新版本中还存在问题(有待解决)

过程中,我们用到settings保存category和tags,然后整合到上次教程中的新建的Make UP Series metabox 并设置为多选和选取相应的series 而category即与settings的category相挂勾,当setting保存时,更新post type中的category(这样不用自己手工添加category。

setting效果图一:

series_set

上图根据lanegie项目经验,通过piklist的add_more可以添加category和series,然后两个seletc选项中,就是勾选相应的series,然后在post type的Make UP series metabox中显示。

category效果图:

category

上图中就是setting保存后,自动加进的category一共3个。这里运用的技巧就是:要勾一个action hook,来实现添加!

add_action( 'update_option_series-setting', 'add_new_category');
function add_new_category(){
    $catArr = array();
    $seriesObj = get_option('series-setting');
    foreach($seriesObj['categorys'] as $cat){
        if(is_string($cat['en_cat'])) {
            $catArr[] = $cat['en_cat'];
        } else {
            $catArr[] = $cat['en_cat'][0];
        }
    }
    foreach ($catArr as $catName) {
        $term = term_exists( $catName, 'makeup_taxonomy' );
        if ( ! $term) {
            wp_insert_term($catName, 'makeup_taxonomy', array('description'=> $catName,'slug' => $catName,'parent'=> 0));
        }
    }
}

代码中:update_option_{$option}自定义的option项,然后用wp_insert_term加入category,注意你的是post type! Tags那里也类似,看源码吧!


edit效果图:

edit

上图是编辑post,我们可以在Make UP Series里勾选相应的series,当Update后,会保存去右边Tags,当然别忘了勾下Makeup Category,这完全按照了wordpress的常规post形式添加了,这有助于我们可以在前端输出信息。

post list 效果图:

cat_series

返回我们的post 列表,可以看到新添加了两个字段列(Category Series),这样我们的产品信息显示更加一目了然。这么方便的类型展示完全归功于get_the_term_list()函数。

整个过程中,主要是整合setting的option项和post中的metabox项之间的关联处理。

这次代码更新比较多,打包下载吧!

post-type-demo

文章分类 Piklist, 经验分享 标签: ,

发表评论