wp_query()方法使用

在讲WP_Query之前我们要先区分一下两个名词:

WP_Query是WordPress自带的的一个用于处理复杂请求的类,在wp-includes/query.php(这里的请求的内容不仅包括文章,还可能是页面,用户,分类等其它信息)。

$wp_query则是在wp-blog-header.php文件中定义的一个WP_Query实体对象,它提供了当前请求的信息。

访问Wordpress首页或分类页面的时候,Wordpress默认创建一个WP_Query的实例,做为这个页面的主循环。 在查看Wordpress主题源代码时,你经常会看到类似:

  1. while( have_posts()): the_post();

的代码。这个就是查找本页面主循环中是否有文章,并予以显示的方法。不过很多时候,除了页面的主循环,我们可以还需要创建自己的查询对象,比方用来显示热门的文章、某人的特定文章等。

具体使用方法:

通过分类获取文章:

关于分类有 5 个可用的参数:

cat(整数):分类 ID
category_name(字符串):分类别名
category__and(数组):分类 ID
category__in(数组):分类 ID
category__not_in(数组):分类 ID
获取一个分类的文章

根据分类的 ID 获取一个分类的文章(包含此分类的子分类):

  1. $query =new WP_Query('cat=4')

根据分类的 ID 获取多个分类的文章:

  1. $query =new WP_Query('cat=2,6,17,38');

想要排除一些分类只需要在分类 ID 前加上 “-” 号:

  1. $query =new WP_Query('cat=-12,-34,-56');

获取同时有多个分类的文章,下边的代码会获取必须同时拥有 ID 为 2 和 6 的分类的文章:

  1. $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(数组):一些标签别名

根据标签别名获取有这个标签的文章:

  1. $query =new WP_Query('tag=cooking');

根据标签 ID 获取有这个标签的文章:

  1. $query =new WP_Query('tag_id=13');

根据排序获取文章

获取根据评论数量排序的文章:

  1. $query =new WP_Query( array('orderby'=>'comment_count'));

根据时间获取文章

获取今天发布的文章

  1. $today = getdate();
  2. $query =new WP_Query('year='. $today['year'].'&monthnum='. $today['mon'].'&day='. $today['mday']);

获取本周发布的文章

  1. $week = date('W');
  2. $year = date('Y');
  3. $query =new WP_Query('year='. $year .'&w='. $week );

根据作者获取文章

查询和某些作者(用户)有关的文章,可以使用 4 个参数:

author(整数):用户 ID
author_name(字符串):用户的昵称(“user_nicename” 字段)
author__in(数组):用户 ID
author__not_in(数组):用户 ID

根据用作者ID 获取:

  1. $query =new WP_Query('author=123');

实例:获取最新5篇文章完整代码块

  1. <h3>最新文章</h3>
  2. <ul>
  3. <?php
  4. $recentPosts =new WP_Query();
  5. $recentPosts->query('showposts=5');
  6. ?>
  7. <?php while($recentPosts->have_posts()): $recentPosts->the_post();?>
  8. <li><a href="<?php the_permalink()?>" rel="bookmark"><?php the_title();?></a></li>
  9. <?php endwhile;?>
  10. </ul>

类WP_Query()的功能非常强大,翠竹林wordpress主题小编只能为大家介绍到这里了,更多可以参考这两篇文章
http://www.endskin.com/wp_query-directions.html
https://codex.wordpress.org/Class_Reference/WP_Query


 

翠竹林版权所有,如未注明 , 均为原创,转载需注明出处。 

猜你喜欢

转载自yantaoliu2006.iteye.com/blog/2282331