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
灵活地查询文章标题。
仍然有问题? 我们要如何帮助您?