要在WordPress分类存档页中添加一个子分类选择列表,您需要使用自定义模板文件和一些PHP代码来实现这个功能。以下是一种方法,步骤如下:
创建一个自定义模板文件:首先,在您的主题文件夹中创建一个新的模板文件。您可以将此文件命名为customcategoryarchive.php
,以明确表示它是用于自定义分类存档的。
编辑自定义模板文件:在自定义模板文件中添加以下代码,以获取父分类的名称和子分类的下拉选择列表:
<?php
/
Template Name: Custom Category Archive
/
get_header();
$parent_categories = get_terms(array(
'taxonomy' => 'category',
'parent' => 0,
));
if (isset($_GET['subcategory'])) {
$selected_subcategory = sanitize_text_field($_GET['subcategory']);
} else {
$selected_subcategory = '';
}
?>
<div class="categoryselector">
<form method="get" action="">
<label for="subcategory">选择子分类:</label>
<select name="subcategory" id="subcategory">
<option value="">所有子分类</option>
<?php foreach ($parent_categories as $parent_category) : ?>
<?php
$subcategories = get_terms(array(
'taxonomy' => 'category',
'parent' => $parent_category>term_id,
));
?>
<optgroup label="<?php echo $parent_category>name; ?>">
<?php foreach ($subcategories as $subcategory) : ?>
<option value="<?php echo $subcategory>slug; ?>" <?php selected($selected_subcategory, $subcategory>slug); ?>><?php echo $subcategory>name; ?></option>
<?php endforeach; ?>
</optgroup>
<?php endforeach; ?>
</select>
<input type="submit" value="筛选">
</form>
</div>
<?php
if (!empty($selected_subcategory)) {
$query_args = array(
'category_name' => $selected_subcategory,
'post_type' => 'post',
'posts_per_page' => 10, // 您可以根据需要更改每页显示的帖子数量
);
} else {
$query_args = array(
'post_type' => 'post',
'posts_per_page' => 10, // 您可以根据需要更改每页显示的帖子数量
);
}
$custom_query = new WP_Query($query_args);
if ($custom_query>have_posts()) :
while ($custom_query>have_posts()) : $custom_query>the_post();
// 在这里显示您的帖子内容
the_title('<h2>', '</h2>');
the_content();
endwhile;
else :
echo '没有找到帖子。';
endif;
?>
<?php get_footer(); ?>
在上述代码中,我们首先获取了所有父分类,然后创建了一个下拉选择列表,其中包含子分类的选项。当用户选择子分类并提交表单时,我们将根据用户选择的子分类过滤帖子。
创建一个页面并选择自定义模板:现在,您可以在WordPress后台创建一个新页面,然后在页面编辑器中选择您刚刚创建的自定义模板“Custom Category Archive”。
发布页面:发布页面后,您可以访问该页面并使用子分类选择列表来过滤显示的帖子。
请注意,上述示例中使用了默认的文章类型“post”和分类“category”。如果您在自己的WordPress网站中使用了自定义文章类型或不同的分类法,您需要相应地修改代码中的分类和文章类型名称。
希望这能帮助您在WordPress分类存档页中添加子分类选择列表!