接上次实例,因为lanegie 项目中的category和tags都是自定义的,所以也用piklist来实现,当中的用到piklist的add_more属性,在新版本中还存在问题(有待解决)
过程中,我们用到settings保存category和tags,然后整合到上次教程中的新建的Make UP Series metabox 并设置为多选和选取相应的series 而category即与settings的category相挂勾,当setting保存时,更新post type中的category(这样不用自己手工添加category。
setting效果图一:
上图根据lanegie项目经验,通过piklist的add_more可以添加category和series,然后两个seletc选项中,就是勾选相应的series,然后在post type的Make UP series metabox中显示。
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效果图:
上图是编辑post,我们可以在Make UP Series里勾选相应的series,当Update后,会保存去右边Tags,当然别忘了勾下Makeup Category,这完全按照了wordpress的常规post形式添加了,这有助于我们可以在前端输出信息。
post list 效果图:
返回我们的post 列表,可以看到新添加了两个字段列(Category Series),这样我们的产品信息显示更加一目了然。这么方便的类型展示完全归功于get_the_term_list()函数。
整个过程中,主要是整合setting的option项和post中的metabox项之间的关联处理。
这次代码更新比较多,打包下载吧!
发表评论
要发表评论,您必须先登录。