在 WordPress 中,WP_Query是一个强大的类,可用于创建自定义的文章查询。以下详细介绍如何使用WP_Query来查询文章标题。

基本查询文章标题


若要查询文章标题,可以使用WP_Query设置基本的查询参数,并在循环中输出文章标题。示例代码如下,你可以将其添加到主题模板文件(如index.phparchive.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 '没有找到文章。';
}
?>

代码解释:

 
  1. 设置查询参数$args数组用于定义查询的条件。post_type指定查询的文章类型,常见的有post(普通文章)、page(页面)等;posts_per_page设置每页显示的文章数量。
  2. 创建WP_Query对象:通过new WP_Query( $args )创建一个查询对象,传入之前定义的查询参数。
  3. 检查并循环输出文章:使用$query->have_posts()检查是否有符合条件的文章,若有则使用while循环遍历每篇文章,通过$query->the_post()将当前文章设置为全局$post对象,以便使用 WordPress 的模板标签(如get_the_title()get_permalink())。
  4. 重置文章数据:使用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'参数,并将其值设置为要查询的标题关键字,这样查询结果将只包含标题中包含该关键字的文章。

按文章标题字母顺序排序查询


若要按文章标题的字母顺序对查询结果进行排序,可以设置orderbyorder参数。示例代码如下:
收起
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灵活地查询文章标题。