首頁  >  文章  >  CMS教程  >  釋放 WP_Query 的力量:探索屬性與方法

釋放 WP_Query 的力量:探索屬性與方法

王林
王林原創
2023-09-04 08:05:06655瀏覽

释放 WP_Query 的力量:探索属性和方法

#歡迎來到「掌握 WP_Query」系列的另一部分。到目前為止我們做得怎麼樣?我希望您喜歡這些教程,就像我們喜歡編寫它們一樣。

在本教學中,您將了解 WP_Query 類別的屬性和方法。但首先,我認為討論一下類別中的“屬性”和“方法”是合適的。

我們可以嗎?

屬性和方法到底是什麼?

在 PHP 中,有一種更簡潔的方式編寫程式碼:物件導向編程,或 OOP。對於 OOP,我們使用「類別」作為藍圖 — 我從 Code Tuts 的一篇經典帖子中獲取了這個術語,Jason Lengstorf 的「物件導向的 PHP 初學者」:

例如,類別就像房子的藍圖。它在紙上定義了房子的形狀,清楚地定義和規劃了房子不同部分之間的關係,即使房子並不存在。

(請記住 WP_Query 是 WordPress 核心的重要類別。)

當您理解 PHP 類別的概念時,「屬性」和「方法」就會變得非常容易理解,因為這些單字只是「變數」和「函數」的同義詞。是的,屬性是 PHP 類別的變數,方法是 PHP 類別的函數。

現在我們已經介紹了它們是什麼,讓我們來了解每個屬性和方法。

警告:直接更改屬性是不明智的。正如 Codex 所說,您應該使用 WP_Query 的方法與它們互動。

WP_Query 類別的屬性

讓我們從 WP_Query 類別的屬性或變數開始。

查詢字串:$query

#

此屬性儲存傳遞給 $wp_query 物件的查詢。

查詢變數數組:$query_vars

此屬性儲存 $query 的變數(及其值)的關聯數組。

查詢物件:$queried_object

此屬性儲存目前查詢的對象,如 $post 物件(如果是 post 查詢)或 $author 物件(如果是作者查詢)。

查詢物件的ID:$queried_object_id

#

該屬性儲存查詢物件的ID。

查詢傳回的貼文:$posts

此屬性儲存從查詢傳回的貼文。

顯示的貼文數量:$post_count

此屬性儲存目前查詢的貼文數。

查詢傳回的貼文數:$found_posts

此屬性儲存 SQL 查詢中不包含 LIMIT 子句的貼文數量。

頁數:$max_num_pages

此屬性儲存頁數 - 計算方法是將 $found_posts 除以 $posts_per_page

目前貼文的索引:$current_post

該屬性儲存循環中目前項目的索引號。例如,如果循環剛開始,則為 -1,並且透過 next_post() 方法遞增。

目前貼文:$post

這個屬性儲存目前的貼文。

條件標籤布林值:$is_{conditional}

以下屬性儲存為布林值,提供有關目前貼文狀態的資訊:

  • $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:檢查是否是 feed。
  • $is_comment_feed:檢查是否是評論動態。
  • $is_trackback:檢查是否是引用。
  • $is_home:檢查是否為部落格主頁。
  • $is_404:檢查是否為404錯誤頁面。
  • $is_comments_popup: 檢查是否為註解彈出視窗。
  • $is_admin: 檢查是否為管理面板。
  • $is_attachment: 檢查是否為附件。
  • $is_singular:檢查是否是任何貼文類型(包括「附件」和「頁面」貼文類型)的單一貼文。
  • $is_robots:檢查是否是對 robots.txt 檔案的查詢。
  • $is_posts_page:檢查是否為「貼文頁面」(在管理面板的「閱讀設定」頁面上設定)。
  • $is_paged:檢查是否是分頁查詢且不是首頁。

WP_Query 類別的方法

現在我們已經完成了屬性,讓我們繼續討論 WP_Query 類別的方法(函數)。

init()

#

此方法只是初始化對象,將所有屬性設為 NULL0FALSE

parse_query( $query )

#

此方法使用$query 屬性來解析查詢並填入所有其他屬性(除了$posts$post_count$post$current_post)。

parse_query_vars()

#

此方法重新解析查詢變數。

get( $query_var )

此方法取得給定的查詢變數。

設定( $query_var, $value )

#

此方法將給定的查詢變數設定為特定值。

&get_posts()

此方法傳回查詢要求的貼文並填入 $posts$post_count 屬性。

next_post()

此方法增加 $current_post 索引並前進到 $posts 中的下一篇文章,傳回目前的文章物件。 (此方法必須在循環內使用才能正常工作。)

the_post()

#

此方法使用下一篇文章的資料設定全域 $post 變數。 (此方法必須在循環內使用才能正常工作。)

have_posts()

此方法檢查是否還有任何帖子需要處理,如果沒有,則返回 FALSE。 (此方法必須在循環之前使用才能正常工作。)

rewind_posts()

此方法只是重設 $current_post$post 屬性。

&query( $query )

此方法呼叫它的兩個同級方法:parse_query()get_posts(),並傳回 get_posts() 的結果。

get_queried_object()

#

該方法傳回查詢的物件。 (如果尚未設置,則設定 $queried_object。)

get_queried_object_id()

#

此方法與上面的方法類似,傳回查詢物件的 ID ($queried_object_id)。

快速提示:如果方法之前有一個 & 符號,則表示方法透過引用傳回。

今天總結

我希望我能夠讓您清楚「屬性」和「方法」對於類別的含義。如果您理解 WP_Query 類別的屬性和方法的用途,我可以說我做得很好!

您對這篇文章有什麼要補充的嗎?在下面的評論部分與我們分享您的想法。如果您喜歡這篇文章,請不要忘記與您的朋友分享。

本系列下一部分見!

#

以上是釋放 WP_Query 的力量:探索屬性與方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn