WordPress 网站中实现分类文章排序及控制文章数量分页
在 WordPress 网站中实现分类文章排序及控制文章数量分页,可以通过以下几种方法达成,下面将详细介绍。
在主题的模板文件(如
收起
php
如果你不想创建自定义查询,也可以通过
收起
php
如果你不想编写代码,也可以使用插件来实现分类文章的排序和分页,例如 “WP-PageNavi” 插件,它可以方便地自定义分页样式。操作步骤如下:
收起
php
通过以上方法,你可以在 WordPress 网站中实现分类文章的排序和控制文章数量分页。
1. 使用 WP_Query 自定义查询
在主题的模板文件(如
category.php
)中,你可以使用WP_Query
类来实现分类文章的排序和分页。以下是示例代码:收起
php
<?php
// 获取当前分类的 ID
$cat_id = get_query_var('cat');
// 设置查询参数
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'category__in' => $cat_id, // 只显示当前分类的文章
'posts_per_page' => 5, // 每页显示的文章数量
'paged' => $paged, // 当前页码
'orderby' => 'date', // 排序依据,这里按日期排序
'order' => 'DESC' // 排序顺序,DESC 为降序,即最新文章在前
);
// 创建 WP_Query 对象
$query = new WP_Query($args);
// 检查是否有文章
if ($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();
// 显示文章标题
echo '<h2><a href="'. get_permalink(). '">'. get_the_title(). '</a></h2>';
// 显示文章摘要
the_excerpt();
endwhile;
// 分页导航
the_posts_pagination(array(
'mid_size' => 2,
'prev_text' => __('« 上一页'),
'next_text' => __('下一页 »'),
));
// 重置文章数据
wp_reset_postdata();
else :
// 若没有文章,显示提示信息
echo '<p>该分类下没有文章。</p>';
endif;
?>
代码解释:
category__in
:指定要显示文章的分类 ID。posts_per_page
:设置每页显示的文章数量。paged
:获取当前页码。orderby
:定义排序依据,可取值包括date
(按日期)、title
(按标题)、rand
(随机)等。order
:设置排序顺序,ASC
为升序,DESC
为降序。the_posts_pagination()
:用于显示分页导航。
2. 修改主查询
如果你不想创建自定义查询,也可以通过
pre_get_posts
钩子来修改主查询,从而实现分类文章的排序和分页。在主题的functions.php
文件中添加以下代码:收起
php
function custom_category_query($query) {
if ($query->is_category() && $query->is_main_query()) {
$query->set('posts_per_page', 5); // 每页显示的文章数量
$query->set('orderby', 'date'); // 排序依据
$query->set('order', 'DESC'); // 排序顺序
}
}
add_action('pre_get_posts', 'custom_category_query');
代码解释:
is_category()
:判断当前是否为分类页面。is_main_query()
:确保只修改主查询。set()
:用于设置查询参数。
3. 使用插件实现
如果你不想编写代码,也可以使用插件来实现分类文章的排序和分页,例如 “WP-PageNavi” 插件,它可以方便地自定义分页样式。操作步骤如下:
- 安装并激活插件:登录 WordPress 后台,导航到 “插件” -> “添加新插件”,搜索 “WP-PageNavi”,点击 “安装现在”,然后激活插件。
- 显示分页导航:在主题的模板文件(如
category.php
)中,在需要显示分页导航的位置添加以下代码:
收起
php
if (function_exists('wp_pagenavi')) {
wp_pagenavi();
}
通过以上方法,你可以在 WordPress 网站中实现分类文章的排序和控制文章数量分页。
仍然有问题? 我们要如何帮助您?