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 类实例化的对象。
$is_single, $is_page, $is_archive, $is_preview, $is_date, $is_year, $is_month, $is_time, $is_author, $is_category, $is_tag, $is_tax, $is_search, $is_feed, $is_comment_feed, $is_trackback, $is_home, $is_404, $is_comments_popup, $is_admin, $is_attachment, $is_singular, $is_robots, $is_posts_page, $is_paged
依据查问条件判别以后是什么页面,而后贮存在些变量里,概况能够参考 《 WordPress 页面判别函数 》。
办法
init()
初始化对象,一切属性设置为 null、-1、0 或 False,删除一些属性。
parse_query( $query )
解析并保留查问字符串。
parse_query_vars()
在之前的 WordPress 版本中和 parse_query() 一样的性能,如今间接调用 parse_query() 就好了。
get( $query_var )
依据名字获取一个查问条件。
set( $query_var, $value )
设置一个查问条件。
get_posts()
依据现有的查问条件去数据库获取文章,并保留在 $posts 属性里,同时设置好 $post_count 属性。此函数的前往值就是存储文章的 $posts 属性。
next_post()
(循环管制)将 $current_post 加 1,也就是把以后文章向前推动一篇,同时把推动后的以后文章增加到 $post 属性里,而后前往 $post 属性。
the_post()
(循环管制)进入下一篇文章,调用 next_post() 函数,而后把推动后的以后文章导入到全局变量里边。
have_posts()
(循环管制)判别循环能否实现,假如一切文章都循环终了或许基本就没有文章则前往 False.
rewind_posts()
(循环管制)跳到循环扫尾。相当于重置 $current_post 属性和 $post 属性。
query( $query )
查问文章,包括调用 init() 办法、parse_query() 办法和 get_posts() 办法,并前往 get_posts() 办法的前往值,用此函数能够实现一个文章查问的完好操作。
get_queried_object()
生成 $queried_object 属性,假如曾经存在则间接前往 $queried_object 属性,所以说,由于默许 $queried_object 是不存在的,想要调用 $queried_object 属性肯定要间接应用 get_queried_object() 办法。
get_queried_object_id()
生成 $queried_object_id 属性,假如曾经存在则间接前往 $queried_object_id 属性。相似 get_queried_object() 办法。
WP_Query( $query = '' ) , __constructor( $query = '' )
WP_Query 类的结构函数,实例化类的时分本人调用,假如你传入一个查问条件,它会主动调用 query() 办法帮你查问文章。
以上就是安达网络工作室关于《WordPress中查询文章的循环Loop结构及用法分析》的一些看法。更多内容请查看本栏目更多内容!
网站可能时不时的要迁徙,或许误操作,数据库没了,所以,我为了省工夫,写了个wordpress一键从新装置的脚本...
在没有本人的网站的时分很想领有一个属于本人的网站,能够说是本人的一个欲望吧。然而当我真正的运转起来了...
去掉logo或许左侧栏的菜单,避免被改掉。 在应用模板下的functions.php下修正 复制代码代码如下: function ...
WordPress 3.5 新增加了一个提醒框性能,能够创立一个提醒框,而后指向任何元素,比方下边的例子: 本文就...
wordpress在默许状况下,头部会呈现很多平常用不到的html代码,比方: 复制代码代码如下: <link rel="altern...
wp_mail() 函数用来发送邮件,相似于 PHP 的 mail() 函数。 默许的发件人称号是 WordPress,发件人邮箱是相...