WordPress 网站中实现分类文章排序及控制文章数量分页
在 WordPress 中,
若要查询文章标题,可以使用
收起
php
若要根据文章标题的关键字进行查询,可以在查询参数中添加
收起
php
在查询参数中添加了
若要按文章标题的字母顺序对查询结果进行排序,可以设置
收起
php
通过以上方法,你可以使用
WP_Query是一个强大的类,可用于创建自定义的文章查询。以下详细介绍如何使用WP_Query来查询文章标题。
基本查询文章标题
若要查询文章标题,可以使用
WP_Query设置基本的查询参数,并在循环中输出文章标题。示例代码如下,你可以将其添加到主题模板文件(如index.php、archive.php等)中:收起
php
<?php
// 设置查询参数
$args = array(
'post_type' => 'post', // 文章类型,这里指定为普通文章
'posts_per_page' => 10 // 每页显示的文章数量,这里设置为 10 篇
);
// 创建 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>';
}
// 重置文章数据,避免影响后续查询
wp_reset_postdata();
} else {
// 若没有文章,输出提示信息
echo '没有找到文章。';
}
?>
代码解释:
- 设置查询参数:
$args数组用于定义查询的条件。post_type指定查询的文章类型,常见的有post(普通文章)、page(页面)等;posts_per_page设置每页显示的文章数量。 - 创建
WP_Query对象:通过new WP_Query( $args )创建一个查询对象,传入之前定义的查询参数。 - 检查并循环输出文章:使用
$query->have_posts()检查是否有符合条件的文章,若有则使用while循环遍历每篇文章,通过$query->the_post()将当前文章设置为全局$post对象,以便使用 WordPress 的模板标签(如get_the_title()和get_permalink())。 - 重置文章数据:使用
wp_reset_postdata()恢复全局$post对象到原始状态,避免影响后续查询。
按文章标题关键字查询
若要根据文章标题的关键字进行查询,可以在查询参数中添加
's'参数。示例代码如下:收起
php
<?php
// 设置查询参数
$args = array(
'post_type' => 'post',
'posts_per_page' => 10,
's' => '关键字' // 替换为你要查询的标题关键字
);
// 创建 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>';
}
wp_reset_postdata();
} else {
echo '没有找到包含该关键字的文章。';
}
?>
代码解释:
在查询参数中添加了
's'参数,并将其值设置为要查询的标题关键字,这样查询结果将只包含标题中包含该关键字的文章。
按文章标题字母顺序排序查询
若要按文章标题的字母顺序对查询结果进行排序,可以设置
orderby和order参数。示例代码如下:收起
php
<?php
// 设置查询参数
$args = array(
'post_type' => 'post',
'posts_per_page' => 10,
'orderby' => 'title', // 按标题排序
'order' => 'ASC' // 升序排列,若要降序可改为 '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>';
}
wp_reset_postdata();
} else {
echo '没有找到文章。';
}
?>
代码解释:
orderby参数设置为'title'表示按文章标题排序,order参数设置为'ASC'表示升序排列,若要降序排列可将其改为'DESC'。通过以上方法,你可以使用
WP_Query灵活地查询文章标题。
仍然有问题? 我们要如何帮助您?

