在WordPress中执行一个自定义的文章查询

具体来说,它的功能如下:

  1. 定义查询参数:通过 $args 数组定义了查询的一些参数,包括查询的文章类型('post' 表示普通文章)、每页显示的文章数量(6)以及文章需要同时属于的分类ID(45 和 44)。
  2. 执行查询:使用 new WP_Query($args) 创建一个新的 WP_Query 对象来执行这个自定义的查询。
  3. 遍历查询结果:通过 if ($query->have_posts()) 判断查询是否返回了文章。如果返回了文章,就使用 while ($query->have_posts()) 遍历查询结果。
  4. 输出文章信息:在循环内部,使用 $query->the_post() 将当前循环的文章设置为全局的 $post 对象,然后使用 the_title()the_category() 和 the_tags() 等函数输出文章的标题、所属分类和标签。
  5. 重置全局数据:在循环结束后,使用 wp_reset_postdata() 函数重置全局的 $post 数据,以确保后续的代码不受这个自定义查询的影响。

总结来说,这段代码的主要功能是在WordPress网站上按照特定的条件(这里是文章类型、每页数量和分类ID)查询文章,并将查询到的文章信息(标题、分类和标签)输出到页面上。

<?php
// 初始化一个数组,用于定义查询参数
$args = array(
    'post_type' => 'post', // 查询文章类型(这里是普通文章)
    'posts_per_page' => 6, // 每页显示的文章数量
    'category__and' => array(45, 44), // 同时属于分类ID为45和44的文章(需要确保这两个分类ID存在)
);

// 创建一个新的WP_Query对象,用于执行自定义查询
$query = new WP_Query($args);

// 检查查询是否返回了文章
if ($query->have_posts()) {
    // 开始循环遍历查询结果
    while ($query->have_posts()) {
        $query->the_post(); // 设置当前循环的文章为全局$post对象

        // 输出文章标题
        ?>
        <h2><?php the_title(); ?></h2>

        // 输出文章所属的分类,以逗号和空格分隔
        <p><?php the_category(', '); ?></p>

        // 输出文章的标签
        <p><?php the_tags(); ?></p>

        <?php
    }

    // 重置全局$post数据,确保后续代码不受影响
    wp_reset_postdata();
}

// 结束PHP代码块
?>

说明

  1. $args 数组用于定义查询的参数。这里我们指定了查询文章类型(’post’),每页显示的文章数量(6),以及文章需要同时属于的分类ID(45和44)。
  2. 使用 new WP_Query($args) 创建一个新的 WP_Query 对象,并传入 $args 数组作为参数,执行自定义查询。
  3. if ($query->have_posts()) 用于检查查询是否返回了文章。如果返回了文章,就进入循环遍历文章。
  4. 在循环内部,$query->the_post() 用于设置当前循环的文章为全局的 $post 对象,以便我们可以使用 the_title()the_category() 和 the_tags() 等函数来获取和输出文章的信息。
  5. the_title(); 用于输出文章的标题。
  6. the_category(', '); 用于输出文章所属的分类,以逗号和空格分隔。你可以根据需要修改分隔符。
  7. the_tags(); 用于输出文章的标签。
  8. 循环结束后,使用 wp_reset_postdata(); 重置全局的 $post 数据,确保后续代码不受影响。
  9. 最后,结束PHP代码块(?>)。