网站定制客户提出需要为自定义文章类型(产品)的后台列表,添加一个产品分类筛选功能,要实现的效果如下图所示,其中“产品”为我们注册的自定义文章类型,“产品分类”为产品的一种自定义分类法。

WordPress 自定义文章类型添加后台分类筛选-琪琪源码网

以下就是我们实现该功能的代码:

  1. /*
  2. * 自定义文章列表添加分类筛选
  3. * https://www.wpdaxue.com/taxonomy-filter-for-custom-post-type.html
  4. */
  5. function wpkj_product_taxonomy_filter() {
  6. global $typenow;
  7. $post_type = 'product'; // 这是文章类型的slug,需要根据实际情况修改
  8. $taxonomy = 'product_category'; // 这是自定义分类法 taxonomy,需要根据实际修改
  9. if ($typenow == $post_type) {
  10. $selected = isset($_GET[$taxonomy]) ? $_GET[$taxonomy] : '';
  11. $info_taxonomy = get_taxonomy($taxonomy);
  12. wp_dropdown_categories(array(
  13. 'show_option_all' => sprintf( __( 'ALL %s', 'textdomain' ), $info_taxonomy->label ),
  14. 'taxonomy' => $taxonomy,
  15. 'name' => $taxonomy,
  16. 'orderby' => 'name',
  17. 'selected' => $selected,
  18. 'hierarchical' => true,
  19. 'show_count' => true,
  20. 'hide_empty' => true,
  21. 'value_field' => 'slug'
  22. ));
  23. };
  24. }
  25. add_action( 'restrict_manage_posts', 'wpkj_product_taxonomy_filter' );

注意看上面代码的 7-8 行,需要根据实际情况修改文章分类和分类法。

参考钩子:restrict_manage_posts