智能摘要 DeepSeek
本文介绍了在 WordPress 中通过自定义模板按分类层级输出文章的方法。步骤包括:1. 创建 PHP 模板文件并编写递归函数输出分类和文章;2. 在后台创建页面并选择该模板;3. 发布页面查看结果。可根据需求调整代码。
在 WordPress 中,你可以使用自定义模板来按分类层级输出所有文章。以下是一个简单的步骤,演示如何实现这个目标。
步骤 1: 创建自定义模板
首先,在你的主题文件夹中创建一个新的 PHP 文件,例如 category-hierarchy-template.php
。在该文件中,你可以使用以下代码:
<?php
function output_category_hierarchy($parent_id = 0) {
// 获取当前层级的分类
$categories = get_terms(array(
'taxonomy' => 'category', // 分类法名称
'parent' => $parent_id,
'hide_empty' => true, // 显示未包含文章的分类
));
if ($categories) {
echo '<ul>';
foreach ($categories as $category) {
echo '<li>';
// 输出分类名称和链接
echo '<h2><a href="' . esc_url(get_category_link($category->term_id)) . '">' . esc_html($category->name) . '</a></h2>';
// 查询当前分类下的文章,排除子分类的文章
$args = array(
'post_type' => 'post',
'posts_per_page' => -1, // 获取所有文章
'cat' => $category->term_id, // 指定分类
'category__not_in' => get_term_children($category->term_id, 'category'), // 排除子分类的文章
);
$query = new WP_Query($args);
if ($query->have_posts()) {
echo '<ul>';
while ($query->have_posts()) {
$query->the_post();
// 输出文章标题和链接
echo '<li><a href="' . esc_url(get_permalink()) . '">' . esc_html(get_the_title()) . '</a></li>';
}
echo '</ul>';
// 恢复原始文章数据
wp_reset_postdata();
}
// 递归调用自身,获取子分类和文章
output_category_hierarchy($category->term_id);
echo '</li>';
}
echo '</ul>';
}
}
// 输出分类层级
output_category_hierarchy();
?>
步骤 2: 创建页面并选择模板
在 WordPress 后台,创建一个新页面(或编辑现有页面)。在页面编辑界面的右侧,你将看到一个名为“模板”的框,选择刚刚创建的模板 Category Hierarchy
。
步骤 3: 查看输出结果
保存并发布页面后,查看该页面。你应该能够看到按分类层级输出的文章列表。
这就是简单的教程。你可以根据自己的需求进一步调整模板和代码。希望这对你有帮助!
评论