WordPress 如何在后台文章列表实现自定义分类法筛选

我们在WordPress主题里增加了自定义分类法后,希望在后台文章列表里可以通过这个分类法来筛选出文章,方便管理者查看,那么如何显示这个自定义分类法筛选呢?

可以在主题的functions.php里加入以下代码:

add_action( 'restrict_manage_posts', 'mobantu_post_filter_by_taxonomies' , 10, 2);
function mobantu_post_filter_by_taxonomies( $post_type, $which ) {
if ( 'post' !== $post_type )
return;
$taxonomies = array( 'topic' );//这里的topic就是自定义分类法
foreach ( $taxonomies as $taxonomy_slug ) {
$taxonomy_obj = get_taxonomy( $taxonomy_slug );
$taxonomy_name = $taxonomy_obj->labels->name;
$terms = get_terms( $taxonomy_slug );
echo "<select name='{$taxonomy_slug}' id='{$taxonomy_slug}' class='postform'>";
echo '<option value="">所有' . sprintf( esc_html__( '%s', 'text_domain' ), $taxonomy_name ) . '</option>';
foreach ( $terms as $term ) {
printf(
'<option value="%1$s" %2$s>%3$s</option>',
$term->slug,
( ( isset( $_GET[$taxonomy_slug] ) && ( $_GET[$taxonomy_slug] == $term->slug ) ) ? ' selected="selected"' : '' ),
$term->name
);
}
echo '</select>';
}
}

以上就是后台文章增加分类法筛选的全部内容。