WordPress 是一个非常强大的内容管理系统,它提供了许多内置的函数和类来帮助我们更容易地获取和处理数据,WP_Query 是一个非常常用的类,它可以帮助我们从数据库中获取文章、页面、自定义文章类型等数据,在本文中,我们将通过10个有用的例子来掌握 WP_Query 的基本用法。
1、获取最新发布的文章
要获取最新发布的文章,我们可以使用 posts_per_page
参数来限制返回的文章数量,并使用 orderby
参数来按照发布日期进行排序,以下是一个示例代码:
$query = new WP_Query(array( 'posts_per_page' => 5, 'orderby' => 'date', 'order' => 'DESC' ));
2、获取特定分类下的文章
要获取特定分类下的文章,我们可以使用 category_name
参数来指定分类名称,以下是一个示例代码:
$query = new WP_Query(array( 'category_name' => '技术', 'posts_per_page' => 10 ));
3、获取带有特定标签的文章
要获取带有特定标签的文章,我们可以使用 tag_id
或 tag__and
参数来指定标签 ID 或多个标签,以下是一个示例代码:
$query = new WP_Query(array( 'tag_id' => 1, // 或者 'tag__and' => array(1, 2, 3) 'posts_per_page' => 5 ));
4、获取自定义文章类型的文章
要获取自定义文章类型的文章,我们可以使用 post_type
参数来指定文章类型,以下是一个示例代码:
$query = new WP_Query(array( 'post_type' => 'product', 'posts_per_page' => 10 ));
5、获取包含特定关键词的文章
要获取包含特定关键词的文章,我们可以使用 s
参数来指定关键词,以下是一个示例代码:
$query = new WP_Query(array( 's' => 'WordPress', 'posts_per_page' => 10 ));
6、获取分页文章列表
要获取分页文章列表,我们可以使用 paged
参数来指定当前页码,以下是一个示例代码:
$query = new WP_Query(array( 'paged' => get_query_var('paged') + 1, // 因为 paged 是从1开始的,所以需要加1 'posts_per_page' => 5, 'orderby' => 'date', 'order' => 'DESC' ));
7、获取特色图片(Featured Image)的文章列表
要获取特色图片的文章列表,我们可以使用 meta_key
和 meta_value
参数来指定特色图片的元数据键和值,以下是一个示例代码:
$query = new WP_Query(array( 'meta_key' => '_thumbnail_id', 'meta_value' => 'true', // 如果特色图片存在,则 meta_value 为 true;否则为 false 或空字符串 '' 'posts_per_page' => 10, 'orderby' => 'date', 'order' => 'DESC' ));
8、根据作者筛选文章列表
要根据作者筛选文章列表,我们可以使用 author
参数来指定作者 ID,以下是一个示例代码:
$query = new WP_Query(array( 'author' => 1, // 或者 'author__in' => array(1, 2, 3),表示多个作者 ID 'posts_per_page' => 10, 'orderby' => 'date', 'order' => 'DESC' ));
9、根据评论数筛选文章列表
要根据评论数筛选文章列表,我们可以使用 comments_number
参数来指定评论数,以下是一个示例代码:
$query = new WP_Query(array( 'comments_number' => -1, // -1表示所有评论数的文章;0表示没有评论的文章;正整数表示评论数大于等于该值的文章;负整数表示评论数小于该值的文章;可以使用 range 参数来指定一个范围,range=> '-3,3',表示评论数在-3到3之间的文章,注意:range 参数仅适用于查询结果集,不适用于查询条件,如果需要根据评论数筛选文章列表,建议使用 comments_number 参数。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/249220.html