WordPress中查询文章的循环Loop结构及用法分析


本文整理自网络,侵删。

WordPress 上获取文章最重要的就是循环(Loop),事实上循环就是去数据库查询到相应的文章,然后暂时储存到全局变量里边,需要的时候一篇一篇的输出出来,WordPress 的循环设计的非常好,完成一次循环需要执行 2000 多行代码,而你在使用循环的时候看到的只是一个简单 while 循环加上几个函数,初学者也很好理解。

<?php
if( have_posts() ):
  while( have_posts() ):
    the_post();
  
  endwhile;
endif;
?>

上边就是一个普通的主循环结构,首先用 have_posts() 函数判断是否有文章,有则用 while 语句循环,在循环体里边调用 the_posts() 函数,the_posts() 函数用来告诉 WordPress 核心的查询类,已经查过一篇文章了,每调用一次 the_posts(),循环中的当前文章就会改变。

当调用几次 the_posts() 之后,文章已经全部循环完毕,就让 have_posts() 函数返回 False 来结束循环,所以,一个普通的循环应该是这样的:

<?php if( have_posts() ): ?>
  <ul>
    <?php while( have_posts() ):the_post();?>
      <li <?php post_class(); ?>>
        <?php the_title( '<h3>', '</h3>' ); ?>
      </li>
    <?php endwhile; ?>
  </ul>
<?php endif; ?>

WP_Query类

循环中所用到的方法都是来自于WP_Query类,这里再对WP_Query类做一下科普:
WP_Query 类的功能包括处理查询条件、去数据库获取文章、整理和储存文章、文章循环、根据文章查询条件判断页面类型。
属性

$query

传入的查询条件。

$query_vars

处理 $query 得到的可以使用的查询条件。

$queried_object

根据查询类型给出的查询归属。比如如果是根据分类查询,那么返回一个包含分类信息的类;如果是标签页则返回包含标签信息的类;作者页等以此类推。

$queried_object_id

返回 $queried_object 的 ID.比如分类就是分类 ID;标签就是标签 ID;以此类推。

$posts

从数据库中查询到的文章和文章信息被以数组的形式储存在这个变量里,每篇文章是一个从 WP_Post 类实例化的对象。

$post_count

当前文章数量,换句话说就是 $posts 变量里存储了几篇文章。

$found_posts

统计如果不启用分页会有多少文章。

$max_num_pages

总页数,当前文章被分成几页。

$current_post

当前文章的索引值。在循环中,开始循环 $current_post 为 –1,每循环一次则加 1,它表示当前循环到的文章在 $posts 变量(数组)中的索引值。

$post

循环中当前的文章,是一个包含文章和文章信息通过 WP_Post 类实例化的对象。

阅读剩余部分

相关阅读 >>

wordpress页面压缩 加速网站访问的方法

wordpress 插件直接将服务器文件导入媒体库

wordpress 文章摘要功能实现代码

wordpress 3.0+菜单功能支持二级和n级菜单实现步骤

wordpress中&quot;无法将上传的文件移动至&quot;错误的解决方法

wordpress中j.parentnode为空或不是对象的解决方法

wordpress的主题编写中获取头部模板和底部模板

wordpress 3.0 十大看点 cms功能进一步增强

wordpress插件的使用

wordpress中获取所使用的模板的页面id的简单方法

更多相关阅读请进入《wordpress》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...