WordPress 添加后台文章列表自定义分类筛选

创客云

如果你的文章或者文章类型添加了自定义分类,下面的代码可以在 WordPress 后台文章列表添加自定义分类下拉筛选框,快速通过自定义分类筛选文章。

  1. add_action('restrict_manage_posts', function($post_type){
  2. 	if($taxonomies	= get_object_taxonomies($post_type, 'objects')){
  3. 		foreach($taxonomies as $taxonomy) {
  4.  
  5. 			if(empty($taxonomy->hierarchical) || empty($taxonomy->show_admin_column)){
  6. 				continue;
  7. 			}
  8.  
  9. 			if($taxonomy->name == 'category'){
  10. 				$taxonomy_key	= 'cat';
  11. 			}else{
  12. 				$taxonomy_key	= $taxonomy->name.'_id';
  13. 			}
  14.  
  15. 			$selected	= 0;
  16. 			if(!empty($_REQUEST[$taxonomy_key])){
  17. 				$selected	= $_REQUEST[$taxonomy_key];
  18. 			}elseif(!empty($_REQUEST['taxonomy']) && ($_REQUEST['taxonomy'] == $taxonomy->name) && !empty($_REQUEST['term'])){
  19. 				if($term		= get_term_by('slug', $_REQUEST['term'], $taxonomy->name)){
  20. 					$selected	= $term->term_id;
  21. 				}
  22. 			}elseif(!empty($taxonomy->query_var) && !empty($_REQUEST[$taxonomy->query_var])){
  23. 				if($term	= get_term_by('slug', $_REQUEST[$taxonomy->query_var], $taxonomy->name)){
  24. 					$selected	= $term->term_id;
  25. 				}
  26. 			}
  27.  
  28. 			wp_dropdown_categories(array(
  29. 				'taxonomy'			=> $taxonomy->name,
  30. 				'show_option_all'	=> $taxonomy->labels->all_items,
  31. 				'show_option_none'	=> '没有设置',
  32. 				'hide_if_empty'		=> true,
  33. 				'hide_empty'		=> 0,
  34. 				'hierarchical'		=> 1,
  35. 				'show_count'		=> 0,
  36. 				'orderby'			=> 'name',
  37. 				'name'				=> $taxonomy_key,
  38. 				'selected'			=> $selected
  39. 			));
  40. 		}
  41. 	}
  42. });
本文由 CityMall 整理发布如需转载,请注明出处:https://www.22vd.com/55698.html
云模板

发表评论