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