本文最后更新于 2023-02-22,已超过 365 天未更新,内容可能已失效。
如果你的文章或者文章类型添加了自定义分类,下面的代码可以在WordPress后台文章列表添加自定义分类下拉筛选框,快速通过自定义分类筛选文章。
代码一:
add_action('restrict_manage_posts', function($post_type){
if($taxonomies = get_object_taxonomies($post_type, 'objects')){
foreach($taxonomies as $taxonomy) {
if(empty($taxonomy->hierarchical) || empty($taxonomy->show_admin_column)){
continue;
}
if($taxonomy->name == 'category'){
$taxonomy_key = 'cat';
}else{
$taxonomy_key = $taxonomy->name.'_id';
}
$selected = 0;
if(!empty($_REQUEST[$taxonomy_key])){
$selected = $_REQUEST[$taxonomy_key];
}elseif(!empty($_REQUEST['taxonomy']) && ($_REQUEST['taxonomy'] == $taxonomy->name) && !empty($_REQUEST['term'])){
if($term = get_term_by('slug', $_REQUEST['term'], $taxonomy->name)){
$selected = $term->term_id;
}
}elseif(!empty($taxonomy->query_var) && !empty($_REQUEST[$taxonomy->query_var])){
if($term = get_term_by('slug', $_REQUEST[$taxonomy->query_var], $taxonomy->name)){
$selected = $term->term_id;
}
}
wp_dropdown_categories(array(
'taxonomy' => $taxonomy->name,
'show_option_all' => $taxonomy->labels->all_items,
'show_option_none' => '没有设置',
'hide_if_empty' => true,
'hide_empty' => 0,
'hierarchical' => 1,
'show_count' => 0,
'orderby' => 'name',
'name' => $taxonomy_key,
'selected' => $selected
));
}
}
});
代码二:
/*
* 自定义文章列表添加分类筛选
*/
function wpkj_product_taxonomy_filter() {
global $typenow;
$post_type = 'product'; // 这是文章类型的slug,需要根据实际情况修改
$taxonomy = 'product_category'; // 这是自定义分类法 taxonomy,需要根据实际修改
if ($typenow == $post_type) {
$selected = isset($_GET[$taxonomy]) ? $_GET[$taxonomy] : '';
$info_taxonomy = get_taxonomy($taxonomy);
wp_dropdown_categories(array(
'show_option_all' => sprintf( __( 'ALL %s', 'textdomain' ), $info_taxonomy->label ),
'taxonomy' => $taxonomy,
'name' => $taxonomy,
'orderby' => 'name',
'selected' => $selected,
'hierarchical' => true,
'show_count' => true,
'hide_empty' => true,
'value_field' => 'slug'
));
};
}
add_action( 'restrict_manage_posts', 'wpkj_product_taxonomy_filter' );
注意看上面代码的 7-8 行,需要根据实际情况修改文章分类和分类法。
除非注明,子佩工作室 文章均为原创,转载请以链接形式标明本文地址。
![解决nginx: [emerg] mkdir() “/dev/shm/nginx-cache/wp” 的问题](https://oss.zptheme.com/wp-content/uploads/2023/06/1687188094-df5b941552926d5.png)




全部评论 (2)
人生路上什么都不怕,就怕自己投降。
非常好