要在WordPress后台文章列表中添加自定义分类法筛选,您可以按照以下步骤操作:
注册自定义分类法(Custom Taxonomy):首先,您需要确保已经在主题或插件中注册了您的自定义分类法。您可以使用register_taxonomy()
函数来完成这一步骤。确保您在正确的地方调用这个函数,通常是在主题的functions.php
文件中。
例如:
function custom_taxonomy() {
$labels = array(
'name' => '自定义分类法',
'singular_name' => '自定义分类',
// 添加其他标签
);
$args = array(
'labels' => $labels,
'public' => true,
// 添加其他参数
);
register_taxonomy('custom_taxonomy', 'post', $args);
}
add_action('init', 'custom_taxonomy');
编辑文章类型的支持:确保您的自定义分类法已经与文章类型相关联。在上面的示例中,我们将自定义分类法与文章类型“post”相关联。
添加筛选菜单:接下来,您需要在文章列表页的后台添加筛选菜单。可以通过自定义manage_posts_columns
和manage_posts_custom_column
来实现。
function add_custom_taxonomy_filter() {
global $typenow;
if ($typenow == 'post') { // 替换为您要添加筛选的文章类型
$taxonomy = 'custom_taxonomy'; // 替换为您的自定义分类法名称
$selected = isset($_GET[$taxonomy]) ? $_GET[$taxonomy] : '';
$info_taxonomy = get_taxonomy($taxonomy);
wp_dropdown_categories(array(
'show_option_all' => __("显示所有 {$info_taxonomy>label}"),
'taxonomy' => $taxonomy,
'name' => $taxonomy,
'orderby' => 'name',
'selected' => $selected,
'show_count' => true,
'hide_empty' => true,
));
}
}
add_action('restrict_manage_posts', 'add_custom_taxonomy_filter');
处理筛选结果:最后,您需要处理筛选的结果并更新文章列表。
function filter_post_type_by_taxonomy() {
global $typenow;
if ($typenow == 'post') { // 替换为您要添加筛选的文章类型
$taxonomy = 'custom_taxonomy'; // 替换为您的自定义分类法名称
if (isset($_GET[$taxonomy]) && $_GET[$taxonomy] != '') {
$query = array(
array(
'taxonomy' => $taxonomy,
'field' => 'id',
'terms' => $_GET[$taxonomy],
'operator' => 'IN',
),
);
set_query_var('tax_query', $query);
}
}
}
add_filter('parse_query', 'filter_post_type_by_taxonomy');
完成这些步骤后,您应该能够在WordPress后台文章列表中看到自定义分类法的筛选菜单,并可以使用它来筛选文章。确保替换示例代码中的自定义分类法名称和文章类型名称以适应您的网站需求。