最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
WordPress自定义内容类型列表中分类(custom taxonomy)的过滤
时间:2022-06-25 19:10:50 编辑:袖梨 来源:一聚教程网
这次帮北京一个客户使用wordpress开发一个企业应用,非常类似erp, 使用wordpress做erp我还是第一次,而且还有很多很奇怪的需求。
比如这次,在供应商管理里,我把供应商做成了一个自定义内容类型。 自定义类型中还有自定义分类, 客户要对自定义分类还要显示一个过滤器,比如默认的按月分类。
找了很久,终于找到下面的代码可以解决,利用到了wordpress的一个action(动作)和一个filter(过滤器)
| 代码如下 | 复制代码 |
| function work_restrict_manage_posts() { global $typenow; $args=array( 'public' => true, '_builtin' => false ); $post_types = get_post_types($args); if ( in_array($typenow, $post_types) ) { $filters = get_object_taxonomies($typenow); foreach ($filters as $tax_slug) { $tax_obj = get_taxonomy($tax_slug); wp_dropdown_categories(array( 'show_option_all' => __('所有 '.$tax_obj->label ), 'taxonomy' => $tax_slug, 'name' => $tax_obj->name, 'orderby' => 'term_order', 'selected' => $_GET[$tax_obj->query_var], 'hierarchical' => $tax_obj->hierarchical, 'show_count' => false, 'hide_empty' => false )); } } } function work_convert_restrict($query) { global $pagenow; global $typenow; if ($pagenow=='edit.php') { $filters = get_object_taxonomies($typenow); foreach ($filters as $tax_slug) { $var = &$query->query_vars[$tax_slug]; if ( isset($var) && $var>0) { $term = get_term_by('id',$var,$tax_slug); $var = $term->slug; } } } return $query; } add_action( 'restrict_manage_posts', 'work_restrict_manage_posts' ); add_filter('parse_query','work_convert_restrict'); |
|
相关文章
- ARC Raiders蛛丝马迹任务怎么做 蛛丝马迹任务全流程攻略 12-24
- ARC Raiders任务一览 直接记录任务全流程详解 12-24
- ARC Raidersr有任务吗 少校的储物柜任务全流程攻略 12-24
- 鸣潮今汐最佳阵容搭配 12-24
- 流放之路2怎么换升华 全平台换升华详细方法介绍 12-24
- 流放之路2怎么重置地图 全平台重置方法注意事项 12-24