WordPress 添加后台文章列表自定义分类筛选
如果你的文章或者文章类型添加了自定义分类,下面的代码可以在 WordPress 后台文章列表添加自定义分类下拉…
如果你的文章或者文章类型添加了自定义分类,下面的代码可以在 WordPress 后台文章列表添加自定义分类下拉筛选框,快速通过自定义分类筛选文章。
section
方法一
-
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
-
));
-
}
-
}
-
});
section
方法二
如果你的文章或者文章类型添加了自定义分类,下面的代码可以在 WordPress 后台文章列表添加自定义分类下拉筛选框,快速通过自定义分类筛选文章。确实和上面的方法基本一样,有些客户说上面的筛选显示分类了,但是没作用。可以尝试下面的代码,记得输入自己的分类法名称:
-
add_action( 'restrict_manage_posts', 'erphp_task_filter_by_taxonomies' , 10, 2);
-
function erphp_task_filter_by_taxonomies( $post_type, $which ) {
-
if ( 'task' !== $post_type )
-
return;
-
$taxonomies = array( 'tasks' );//这里可以加多个自定义分类法
-
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 (%4$s)</option>',
-
$term->slug,
-
( ( isset( $_GET[$taxonomy_slug] ) && ( $_GET[$taxonomy_slug] == $term->slug ) ) ? ' selected="selected"' : '' ),
-
$term->name,
-
$term->count
-
);
-
}
-
echo '</select>';
-
}
-
}
类别:WordPress教程、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!