2023.2.14 自定义后台检索

/*adding-a-taxonomy-filter-to-admin-list-for-a-custom-post-type*/
function todo_restrict_manage_posts()
{
global $typenow;
$args = array('public' => true, '_builtin' => false);
$post_types = get_post_types($args);
if (in_array($typenow, $post_types)) {
$filters = get_object_taxonomies($typenow);
foreach ($filters as $tax_slug) {
$tax_obj = get_taxonomy($tax_slug);
wp_dropdown_categories(array(
'show_option_all' => __('Show All ' . $tax_obj->label),
'taxonomy' => $tax_slug,
'name' => $tax_obj->name,
'orderby' => 'term_order',
//'selected' => $_GET[$tax_obj->query_var],
'hierarchical' => $tax_obj->hierarchical,
'show_count' => false,
'hide_if_empty' => true
));
}
}
}
function todo_convert_restrict($query)
{
global $pagenow;
global $typenow;
if ($pagenow == 'edit.php') {
$filters = get_object_taxonomies($typenow);
foreach ($filters as $tax_slug) {
$var = &$query->query_vars[$tax_slug];
if (isset($var)) {
$term = get_term_by('id', $var, $tax_slug);
$var = !empty($term->slug) ? $term->slug : '';
}
}
}
return $query;
}
add_action('restrict_manage_posts', 'todo_restrict_manage_posts');
add_filter('parse_query', 'todo_convert_restrict');

wordpress创建分类目录下拉表单函数:wp_dropdown_categories
函数
wp_dropdown_categories( $args );
描述
显示一个目录下拉选择表单元素,函数直接返回html内容。
参数 $args
$args = [
'show_option_all' => '',
'show_option_none' => '',
'option_none_value' => '-1',
'orderby' => 'ID',
'order' => 'ASC',
'show_count' => 0,
'hide_empty' => 1,
'child_of' => 0,
'exclude' => '',
'echo' => 1,
'selected' => 0,
'hierarchical' => 0,
'name' => 'cat',
'id' => '',
'class' => 'postform',
'depth' => 0,
'tab_index' => 0,
'taxonomy' => 'category',
'hide_if_empty' => false,
'value_field' => 'term_id',
];
参数详情
参数 | 数据类型 | 描述 | 默认值 |
---|---|---|---|
show_option_all | 字符串 | 显示 ‘所有分类目录’ 选项的文本,下拉选项默认显示为 ‘所有分类目录 | |
show_option_none | 字符串 | 在下拉选择表单的顶部创建一个附加的 | |
option_none_value | 字符串 | 选择分类的选项值 | -1 |
orderby | 字符串 | 用来给分类排序的数据列名称,可用的值为 ‘ID’, ‘name’ 与 ‘slug’ | ID |
order | 字符串 | 分类的排序方式,可用的值为 ‘ASC’ 和 ‘DESC’ | ASC |
pad_counts | 布尔值 | 有关参数说明,请参见get_terms() | false |
show_count | 布尔值|整数 | 是否包含分类中的文章数量,接受的值为0、1或对应的布尔值 | 0 |
echo | 布尔值|整数 | 直接显示或返回生成的HTML,接受的值为0、1或对应的布尔值 | 0 |
hierarchical | 布尔值|整数 | 是否显示为分层结构,接受的值为0、1或对应的布尔值 | 0 |
depth | 整数 | 最大深度 | 0 |
tab_index | 整数 | 选择元素的制表符索引顺序 | 0 |
name | 字符串 | 选择元素的「name」属性 | cat |
id | 字符串 | 选择元素的「id」属性 | cat |
class | 字符串 | 选择元素的「class」属性 | postform |
selected | 整数|字符串 | 默认选择中选项 | 0 |
value_field | 字符串 | 用于填充选项的分类字段,可以值有:’term_id’, ‘name’, ‘slug’, ‘term_group’, ‘term_taxonomy_id’, ‘taxonomy’, ‘description’, ‘parent’, ‘count’。 | term_id |
taxonomy | 字符串 | 获取数据的分类法名称 | category |
hide_if_empty | 布尔值 | 没有数据时,是否隐藏选择元素 | false |
required | 布尔值 | 是否包含HTML5的「require」属性 | false |
相关文章