要在 WordPress 中为自定义分类法添加筛选功能,您需要进行以下步骤:
创建自定义分类法:
如果您还没有创建自定义分类法,可以使用 WordPress 的 register_taxonomy()
函数在您的主题或插件中创建一个。确保在注册时设置 'hierarchical'
参数为 true
,以便您可以创建有层次结构的分类法。
function custom_taxonomy() {
$args = array(
'hierarchical' => true,
'label' => 'Custom Taxonomy',
// 添加其他参数和标签设置
);
register_taxonomy('custom_taxonomy', 'post_type_name', $args);
}
add_action('init', 'custom_taxonomy');
添加筛选表单:
在您想要显示分类筛选的页面上,添加一个筛选表单。这通常是通过创建一个 <form>
元素和 <select>
下拉菜单来完成的。每个选项的值应该对应于您的自定义分类法的术语(slug)。
处理筛选请求:
接下来,您需要在接收到筛选请求时修改 WordPress 查询以考虑所选分类。这通常是在 functions.php
文件中完成的。
function custom_taxonomy_filter() {
if (isset($_GET['custom_taxonomy_filter']) && !empty($_GET['custom_taxonomy_filter'])) {
$taxonomy_filter = $_GET['custom_taxonomy_filter'];
$query_args = array(
'post_type' => 'post_type_name', // 替换为您的自定义文章类型
'tax_query' => array(
array(
'taxonomy' => 'custom_taxonomy',
'field' => 'slug',
'terms' => $taxonomy_filter,
),
),
);
query_posts($query_args);
}
}
add_action('pre_get_posts', 'custom_taxonomy_filter');
请确保将 'post_type_name'
和 'custom_taxonomy'
替换为您的自定义文章类型和分类法的名称。
显示结果:
最后,在您的模板文件中,使用 WordPress 循环来显示经过筛选的帖子。
这样,您就可以在 WordPress 中为自定义分类法添加筛选功能了。确保备份您的主题文件和数据库,以防不小心出错。