欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WordPress中查詢文章的循環(huán)Loop結(jié)構(gòu)及用法分析

 更新時(shí)間:2015年12月17日 16:00:29   作者:斌果  
這篇文章主要介紹了WordPress中查詢文章的循環(huán)Loop結(jié)構(gòu)及用法分析,順帶介紹了提供各種查詢方法的WP_Query類的一些基本情況,需要的朋友可以參考下

WordPress 上獲取文章最重要的就是循環(huán)(Loop),事實(shí)上循環(huán)就是去數(shù)據(jù)庫查詢到相應(yīng)的文章,然后暫時(shí)儲(chǔ)存到全局變量里邊,需要的時(shí)候一篇一篇的輸出出來,WordPress 的循環(huán)設(shè)計(jì)的非常好,完成一次循環(huán)需要執(zhí)行 2000 多行代碼,而你在使用循環(huán)的時(shí)候看到的只是一個(gè)簡單 while 循環(huán)加上幾個(gè)函數(shù),初學(xué)者也很好理解。

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

上邊就是一個(gè)普通的主循環(huán)結(jié)構(gòu),首先用 have_posts() 函數(shù)判斷是否有文章,有則用 while 語句循環(huán),在循環(huán)體里邊調(diào)用 the_posts() 函數(shù),the_posts() 函數(shù)用來告訴 WordPress 核心的查詢類,已經(jīng)查過一篇文章了,每調(diào)用一次 the_posts(),循環(huán)中的當(dāng)前文章就會(huì)改變。

當(dāng)調(diào)用幾次 the_posts() 之后,文章已經(jīng)全部循環(huán)完畢,就讓 have_posts() 函數(shù)返回 False 來結(jié)束循環(huán),所以,一個(gè)普通的循環(huán)應(yīng)該是這樣的:

<?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類

循環(huán)中所用到的方法都是來自于WP_Query類,這里再對(duì)WP_Query類做一下科普:
WP_Query 類的功能包括處理查詢條件、去數(shù)據(jù)庫獲取文章、整理和儲(chǔ)存文章、文章循環(huán)、根據(jù)文章查詢條件判斷頁面類型。
屬性

$query

傳入的查詢條件。

$query_vars

處理 $query 得到的可以使用的查詢條件。

$queried_object

根據(jù)查詢類型給出的查詢歸屬。比如如果是根據(jù)分類查詢,那么返回一個(gè)包含分類信息的類;如果是標(biāo)簽頁則返回包含標(biāo)簽信息的類;作者頁等以此類推。

$queried_object_id

返回 $queried_object 的 ID.比如分類就是分類 ID;標(biāo)簽就是標(biāo)簽 ID;以此類推。

$posts

從數(shù)據(jù)庫中查詢到的文章和文章信息被以數(shù)組的形式儲(chǔ)存在這個(gè)變量里,每篇文章是一個(gè)從 WP_Post 類實(shí)例化的對(duì)象。

$post_count

當(dāng)前文章數(shù)量,換句話說就是 $posts 變量里存儲(chǔ)了幾篇文章。

$found_posts

統(tǒng)計(jì)如果不啟用分頁會(huì)有多少文章。

$max_num_pages

總頁數(shù),當(dāng)前文章被分成幾頁。

$current_post

當(dāng)前文章的索引值。在循環(huán)中,開始循環(huán) $current_post 為 –1,每循環(huán)一次則加 1,它表示當(dāng)前循環(huán)到的文章在 $posts 變量(數(shù)組)中的索引值。

$post

循環(huán)中當(dāng)前的文章,是一個(gè)包含文章和文章信息通過 WP_Post 類實(shí)例化的對(duì)象。

$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

根據(jù)查詢條件判斷當(dāng)前是什么頁面,然后儲(chǔ)存在些變量里,詳情可以參考 《 WordPress 頁面判斷函數(shù) 》。

方法

init()

初始化對(duì)象,所有屬性設(shè)置為 null、-1、0 或 False,刪除一些屬性。

parse_query( $query )

解析并保存查詢字符串。

parse_query_vars()

在之前的 WordPress 版本中和 parse_query() 一樣的功能,現(xiàn)在直接調(diào)用 parse_query() 就好了。

get( $query_var )

根據(jù)名字獲取一個(gè)查詢條件。

set( $query_var, $value )

設(shè)置一個(gè)查詢條件。

get_posts()

根據(jù)現(xiàn)有的查詢條件去數(shù)據(jù)庫獲取文章,并保存在 $posts 屬性里,同時(shí)設(shè)置好 $post_count 屬性。此函數(shù)的返回值就是存儲(chǔ)文章的 $posts 屬性。

next_post()

(循環(huán)控制)將 $current_post 加 1,也就是把當(dāng)前文章向前推進(jìn)一篇,同時(shí)把推進(jìn)后的當(dāng)前文章添加到 $post 屬性里,然后返回 $post 屬性。

the_post()

(循環(huán)控制)進(jìn)入下一篇文章,調(diào)用 next_post() 函數(shù),然后把推進(jìn)后的當(dāng)前文章導(dǎo)入到全局變量里邊。

have_posts()

(循環(huán)控制)判斷循環(huán)是否完成,如果所有文章都循環(huán)完畢或者根本就沒有文章則返回 False.

rewind_posts()

(循環(huán)控制)跳到循環(huán)開頭。相當(dāng)于重置 $current_post 屬性和 $post 屬性。

query( $query )

查詢文章,包括調(diào)用 init() 方法、parse_query() 方法和 get_posts() 方法,并返回 get_posts() 方法的返回值,用此函數(shù)可以完成一個(gè)文章查詢的完整操作。

get_queried_object()

生成 $queried_object 屬性,如果已經(jīng)存在則直接返回 $queried_object 屬性,所以說,因?yàn)槟J(rèn) $queried_object 是不存在的,想要調(diào)用 $queried_object 屬性一定要直接使用 get_queried_object() 方法。

get_queried_object_id()

生成 $queried_object_id 屬性,如果已經(jīng)存在則直接返回 $queried_object_id 屬性。類似 get_queried_object() 方法。

WP_Query( $query = '' ) , __constructor( $query = '' )

WP_Query 類的構(gòu)造函數(shù),實(shí)例化類的時(shí)候自己調(diào)用,如果你傳入一個(gè)查詢條件,它會(huì)自動(dòng)調(diào)用 query() 方法幫你查詢文章。

相關(guān)文章

  • PHP實(shí)現(xiàn)批量修改文件名的方法示例

    PHP實(shí)現(xiàn)批量修改文件名的方法示例

    這篇文章主要介紹了PHP實(shí)現(xiàn)批量修改文件名的方法,結(jié)合實(shí)例形式分析了php基于文件遍歷、字符串操作實(shí)現(xiàn)文件名批量修改相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • php cli模式學(xué)習(xí)(PHP命令行模式)

    php cli模式學(xué)習(xí)(PHP命令行模式)

    之前知道php—cli模式是一種類似shell命令式的執(zhí)行php程序,不過一直以為這個(gè)是一種落后的方式,應(yīng)該沒有什么意義,因?yàn)閺臎]有遇到過使用這個(gè)cli模式編程的。不過今天遇到了使用cli模式的應(yīng)用
    2013-06-06
  • php中動(dòng)態(tài)調(diào)用函數(shù)的方法

    php中動(dòng)態(tài)調(diào)用函數(shù)的方法

    這篇文章主要介紹了php中動(dòng)態(tài)調(diào)用函數(shù)的方法,實(shí)例分析了php動(dòng)態(tài)函數(shù)的實(shí)現(xiàn)原理與具體實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2015-03-03
  • php5.3 廢棄函數(shù)小結(jié)

    php5.3 廢棄函數(shù)小結(jié)

    php5.3 廢棄函數(shù)小結(jié)
    2010-05-05
  • php頁面消耗內(nèi)存過大的處理辦法

    php頁面消耗內(nèi)存過大的處理辦法

    是因?yàn)閜hp頁面消耗的最大內(nèi)存默認(rèn)是為 8M (在PHP的ini件里可以看到) ,如果文件太大 或圖片太大 在讀取的時(shí)候 會(huì)發(fā)生錯(cuò)誤。
    2013-03-03
  • php匹配字符中鏈接地址的方法

    php匹配字符中鏈接地址的方法

    這篇文章主要介紹了php匹配字符中鏈接地址的方法,涉及正則匹配與提取超鏈接的方法,是非常實(shí)用的正則技巧,需要的朋友可以參考下
    2014-12-12
  • PHP寫API輸出的時(shí)用echo的原因詳解

    PHP寫API輸出的時(shí)用echo的原因詳解

    在本篇文章里小編給大家分享了關(guān)于PHP寫API輸出的時(shí)用echo的原因和相關(guān)知識(shí)點(diǎn),需要的朋友們參考下。
    2019-04-04
  • php緩存技術(shù)介紹

    php緩存技術(shù)介紹

    在WEB開發(fā)中用來應(yīng)付高流量最有效的辦法就是用緩存技術(shù),能有效的提高服務(wù)器負(fù)載性能,用空間換取時(shí)間
    2006-11-11
  • PHP中10個(gè)不常見卻非常有用的函數(shù)

    PHP中10個(gè)不常見卻非常有用的函數(shù)

    PHP中10個(gè)雖然不常見卻非常有用的函數(shù),對(duì)于有特殊需求的朋友可以參考下,充分發(fā)揮php的優(yōu)勢。
    2010-03-03
  • php.ini 配置文件的深入解析

    php.ini 配置文件的深入解析

    本篇文章是對(duì)php.ini配置文件進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評(píng)論