$args = array(
'post_type' => 'post',
'order' => 'DESC',
'orderby' => rand,
'posts_per_page' => 4
);
$myposts = new WP_Query( $args );
if($myposts -> have_posts()):
while( $myposts -> have_posts() ) : $myposts -> the_post();
get_template_part( 'template-parts/loop', $loop_temp );
endwhile;
endif;
wp_reset_postdata(); //重置请求数据
//$myposts = array_shift ($myposts);
//$myposts = array_shift ($myposts) ;
WP_Query 是 WordPress 提供的一个强大的查询工具,用于获取与当前页面或文章相关的内容。下面是 WP_Query 的所有参数及其讲解:
'author': 查询特定作者的文章。可以是作者 ID、作者登录名或作者昵称。
实用案例:查询作者为 "John Smith" 的所有文章。
$query = newWP_Query( array(
'author_name' => 'john-smith'
) );
'cat': 查询特定分类目录的文章。可以是分类目录 ID、分类目录名称或分类目录 slug。
实用案例:查询分类目录为 "News" 的所有文章。
$query = newWP_Query( array(
'category_name' => 'news'
) );
'category__and': 查询同时属于多个分类目录的文章。需要提供一个数组,包含多个分类目录 ID。
实用案例:查询同时属于分类目录 ID 2 和 3 的文章。
$query = newWP_Query( array(
'category__and' => array( 2, 3 )
) );
'category__in': 查询属于多个分类目录中任意一个的文章。需要提供一个数组,包含多个分类目录 ID。
实用案例:查询属于分类目录 ID 2 或 3 的文章。
$query = newWP_Query( array(
'category__in' => array( 2, 3 )
) );
'category__not_in': 查询不属于多个分类目录的文章。需要提供一个数组,包含多个分类目录 ID。
实用案例:查询不属于分类目录 ID 2 或 3 的文章。
$query = newWP_Query( array(
'category__not_in' => array( 2, 3 )
) );
'tag': 查询特定标签的文章。可以是标签 ID、标签名称或标签 slug。
实用案例:查询标签为 "WordPress" 的所有文章。
$query = newWP_Query( array(
'tag' => 'wordpress'
) );
'tag_id': 查询特定标签的文章。必须是标签 ID。
实用案例:查询标签 ID 5 的所有文章。
$query = newWP_Query( array(
'tag_id' => 5
) );
'tag__and': 查询同时包含多个标签的文章。需要提供一个数组,包含多个标签 ID。
实用案例:查询同时包含标签 ID 5 和 6 的所有文章。
$query = newWP_Query( array(
'tag__and' => array( 5, 6 )
) );
'tag__in': 查询包含多个标签中任意一个的文章。需要提供一个数组,包含多个标签 ID。
实用案例:查询包含标签 ID 5 或 6 的所有文章。
$query = newWP_Query( array(
'tag__in' => array( 5, 6 )
) );
'tag__not_in': 查询不包含多个标签的文章。需要提供一个数组,包含多个标签 ID。
实用案例:查询不包含标签 ID 5 或 6 的文章。
$query = newWP_Query( array(
'tag__not_in' => array( 5, 6 )
) );
'post_type': 查询特定类型的文章。可以是任何已注册的自定义文章类型或默认文章类型。
实用案例:查询类型为 "portfolio" 的所有文章。
$query = newWP_Query( array(
'post_type' => 'portfolio'
) );
'post__in': 查询特定文章。需要提供一个数组,包含多个文章 ID。
实用案例:查询 ID 1、3 和 5 的文章。
$query = newWP_Query( array(
'post__in' => array( 1, 3, 5 )
) );
'post__not_in': 查询除了特定文章之外的文章。需要提供一个数组,包含多个文章 ID。
实用案例:查询除了 ID 1、3 和 5 之外的所有文章。
$query = newWP_Query( array(
'post__not_in' => array( 1, 3, 5 )
) );
's': 查询包含特定关键词的文章。
实用案例:查询包含关键词 "WordPress" 的所有文章。
$query = newWP_Query( array(
's' => 'wordpress'
) );
'date_query': 查询在特定日期范围内发布的文章。需要提供一个数组,包含多个日期查询参数。
实用案例:查询在 2022 年 1 月 1 日至 2022 年 12 月 31 日之间发布的所有文章。
$query = newWP_Query( array(
'date_query' => array(
'after' => '2022-01-01',
'before' => '2022-12-31',
),
) );
'meta_query': 查询具有特定自定义字段值的文章。需要提供一个数组,包含多个自定义字段查询参数。
实用案例:查询具有自定义字段 "featured" 值为 "yes" 的所有文章。
$query = newWP_Query( array(
'meta_query' => array(
array(
'key' => 'featured',
'value' => 'yes',
),
),
) );
'orderby': 指定结果集按哪个参数排序。可以是多个可排序的参数之一。
实用案例:按发布日期降序排列所有文章。
$query = newWP_Query( array(
'orderby' => 'date',
'order' => 'DESC',
) );
'posts_per_page': 指定每页显示的文章数量。
实用案例:每页显示 10 篇文章。
$query = newWP_Query( array(
'posts_per_page' => 10,
) );
WP_Query循环查询案例
$args = array(
'post_type' => 'post',
'orderby' => 'date',
'order' => 'DESC',
);
$query = new WP_Query( $args );
?>
if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); ?>
the_title(); ?>
}} else {echo '没有帖子';} wp_reset_postdata(); ?>
以上是一些常用的 WP_Query 参数及其实用案例。 WP_Query 支持许多其他参数,可以在 WP_Query 文档中查看完整列表和用法。
order 支持 ASC 顺序 和 DESC 逆序。
orderby 即排序方式,支持的方式则可谓五花八门。
none - 不排序;
ID - 按文章ID排序;
author - 按作者排序;
title - 按文章标题排序;
name - 按文章slug排序;
type - 按文章类型排序;
date - 按文章发布日期排序;
modified - 按文章修改日期排序
parent - 按文章parent排序;
rand - 随机顺序
comment_count - 按评论数量排序
menu_order - 文章类型为page时,即页面,编辑时可看见【页面属性】里有排序,可设置数值。当文章为post时,这个数值为0。所以说,只有当文章类型是 page 时,按menu_order排序才有效;
meta_key,meta_value - 根据文章的附属属性排序。还可以使用 meta_type 设置 meta 的数据类型,如NUMERIC, BINARY, CHAR, DATE, DATETIME, DECIMAL, SIGNED, TIME, UNSIGNED等,相应的应当使用meta_value_*,如meta_value_num、meta_value_datetime 等;
post_in - 需和参数 post_in 配合使用;
post_name_in - 需和参数 post_name_in 配合使用;
post_parent_in - 需和参数 post_parent_in 配合使用;