要在WordPress后台文章列表中添加自定义分类筛选,您可以使用WordPress提供的一些内置功能和自定义代码。以下是一种方法:
添加自定义分类法(Custom Taxonomy):
首先,您需要创建一个自定义分类法,以便将其应用于文章类型。假设您想要为”文章”(post)添加一个自定义分类,可以在您的主题或插件中添加以下代码:
function custom_taxonomy() {
$labels = array(
'name' => '自定义分类',
'singular_name' => '自定义分类',
'menu_name' => '自定义分类',
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
);
register_taxonomy('custom_category', array('post'), $args);
}
add_action('init', 'custom_taxonomy');
这将在文章类型上创建一个名为”自定义分类”的自定义分类法。
添加筛选表单到文章列表页面:
接下来,您需要在文章列表页面添加一个筛选表单。您可以使用restrict_manage_posts
动作来实现这一点。将以下代码添加到您的主题的functions.php
文件中:
function custom_taxonomy_filter() {
global $typenow;
if ($typenow == 'post') { // 仅在文章类型页面显示
$taxonomy = 'custom_category';
$terms = get_terms($taxonomy);
if ($terms) {
echo "";
echo "";
foreach ($terms as $term) {
$selected = isset($_GET[$taxonomy]) && $_GET[$taxonomy] == $term>slug ? 'selected' : '';
echo "";
}
echo "";
}
}
}
add_action('restrict_manage_posts', 'custom_taxonomy_filter');
处理筛选操作:
最后,您需要修改WordPress查询以根据筛选条件过滤文章。添加以下代码到functions.php
文件中:
function custom_taxonomy_filter_request($query) {
global $pagenow;
$taxonomy = 'custom_category';
$q_vars = &$query>query_vars;
if (isset($_GET[$taxonomy]) && $pagenow == 'edit.php' && $q_vars['post_type'] == 'post') {
$term = sanitize_text_field($_GET[$taxonomy]);
$q_vars[$taxonomy] = $term;
}
}
add_filter('parse_query', 'custom_taxonomy_filter_request');
现在,当您访问文章列表页面时,您应该会看到一个名为”自定义分类”的筛选下拉菜单,您可以使用它来筛选文章列表中的文章。这将根据所选的自定义分类来显示相应的文章。请确保根据您的需求进行适当的自定义和样式化。