在讲WP_Query之前我们要先区分一下两个名词:
WP_Query是WordPress自带的的一个用于处理复杂请求的类,在wp-includes/query.php(这里的请求的内容不仅包括文章,还可能是页面,用户,分类等其它信息)。
$wp_query则是在wp-blog-header.php文件中定义的一个WP_Query实体对象,它提供了当前请求的信息。
访问Wordpress首页或分类页面的时候,Wordpress默认创建一个WP_Query的实例,做为这个页面的主循环。 在查看Wordpress主题源代码时,你经常会看到类似:
- while( have_posts()): the_post();
的代码。这个就是查找本页面主循环中是否有文章,并予以显示的方法。不过很多时候,除了页面的主循环,我们可以还需要创建自己的查询对象,比方用来显示热门的文章、某人的特定文章等。
具体使用方法:
通过分类获取文章:
关于分类有 5 个可用的参数:
cat(整数):分类 ID
category_name(字符串):分类别名
category__and(数组):分类 ID
category__in(数组):分类 ID
category__not_in(数组):分类 ID
获取一个分类的文章
根据分类的 ID 获取一个分类的文章(包含此分类的子分类):
- $query =new WP_Query('cat=4')
根据分类的 ID 获取多个分类的文章:
- $query =new WP_Query('cat=2,6,17,38');
想要排除一些分类只需要在分类 ID 前加上 “-” 号:
- $query =new WP_Query('cat=-12,-34,-56');
获取同时有多个分类的文章,下边的代码会获取必须同时拥有 ID 为 2 和 6 的分类的文章:
- $query =new WP_Query( array('category__and'=> array(2,6)));
根据标签获取文章:
获取关于标签的文章,可以使用 7 个参数:
tag(字符串):标签别名
tag_id(整数):标签 ID
tag__end(数组):一些标签 ID
tag__in(数组):一些标签 ID
tag_slug__and(数组):一些标签别名
tag_slug__in(数组):一些标签别名
根据标签别名获取有这个标签的文章:
- $query =new WP_Query('tag=cooking');
根据标签 ID 获取有这个标签的文章:
- $query =new WP_Query('tag_id=13');
根据排序获取文章
获取根据评论数量排序的文章:
- $query =new WP_Query( array('orderby'=>'comment_count'));
根据时间获取文章
获取今天发布的文章
- $today = getdate();
- $query =new WP_Query('year='. $today['year'].'&monthnum='. $today['mon'].'&day='. $today['mday']);
获取本周发布的文章
- $week = date('W');
- $year = date('Y');
- $query =new WP_Query('year='. $year .'&w='. $week );
根据作者获取文章
查询和某些作者(用户)有关的文章,可以使用 4 个参数:
author(整数):用户 ID
author_name(字符串):用户的昵称(“user_nicename” 字段)
author__in(数组):用户 ID
author__not_in(数组):用户 ID
根据用作者ID 获取:
- $query =new WP_Query('author=123');
实例:获取最新5篇文章完整代码块
- <h3>最新文章</h3>
- <ul>
- <?php
- $recentPosts =new WP_Query();
- $recentPosts->query('showposts=5');
- ?>
- <?php while($recentPosts->have_posts()): $recentPosts->the_post();?>
- <li><a href="<?php the_permalink()?>" rel="bookmark"><?php the_title();?></a></li>
- <?php endwhile;?>
- </ul>
类WP_Query()的功能非常强大,翠竹林wordpress主题小编只能为大家介绍到这里了,更多可以参考这两篇文章
http://www.endskin.com/wp_query-directions.html
https://codex.wordpress.org/Class_Reference/WP_Query
翠竹林版权所有,如未注明 , 均为原创,转载需注明出处。