WordPress開發入門07:WP_Query 自定義迴圈
當你使用自定義文章型別或自定義主題時,通常會看到使用WP_Query。瞭解它的工作原理並瞭解如何自定義它,是非常有幫助的。
codex文件上關於WP_Query的說明
然後,我們將在WordPress網站中檢視WP_Query,並講解如何使用它來自定義主題。
這是WP_Query在codex上詳細介紹的頁面:
這個頁面首先介紹WP_Query的描述,並展示標準迴圈和一些替代的方法。
然後,在右側,它會顯示所有不同型別的引數,你可以使用這些引數自定義你希望顯示的迴圈以及應該滿足的條件。
You must be logged in to view the hidden contents.
例如,如果只想顯示某類別的內容,這裡有作者引數、分類目錄引數或文章和頁面引數,文章狀態引數,自定義欄位引數以及其他許多引數。
自定義迴圈的不同方法
現在,我們就要進入相應的實戰開發了,我們在之前的章節中講過,WordPress開發最好是在子主題中進行。這是主題的百度網盤下載連結:
連結:https://pan.baidu.com/s/1nxmn5yT 密碼:ozfb
下載完成後,解壓,我把解壓後的所有檔案,全部拷貝到 twentyfifteen-child-theme 這個資料夾中
You must be logged in to view the hidden contents.
然後,我在我的網站上新增一個自定義頁面(注意這裡一定要使用子主題進行開發,如果沒有使用,父主題是沒有Custom Template模板這個頁面屬性的):
並通過“外觀” >> “小工具”。並確保我有一個頁面小工具,以便我可以瀏覽我的網站看到。
現在,來到網站前臺,在小工具掛件區域,可以看到剛剛建立的自定義模板頁面。點選進去,看到的是剛剛新增的三篇文章標題:
但是,我們建立頁面時,並沒有新增頁面的正文內容啊,為什麼會有這些內容呢?
為什麼會有這些內容呢
現在,進入主題 twentyfifteen-child-theme 的資料夾中,並開啟page-custom.php,可以在這裡看到模板名稱”Custom Template”:這是剛剛在建立頁面時,“頁面屬性”下的模板。
<?php
/**
* Template Name: Custom Template /***自定義模板***/
*/
然後,開始一個新的WP_Query:
// The Query
$args = array(/***WP_Query所需的引數***/
'post_type' => 'post',
);
$the_query = new WP_Query( $args ); /***建立WP_Query物件***/
// The Loop
if ( $the_query->have_posts() ) { /***有文章時,輸出所有文章的標題***/
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found /***沒有文章時,不輸出***/
}
使用WP_Query的一個需要注意的地方是:當你在一個頁面上使用多個查詢時,是需要重新設定post資料,以防其他可能會干擾的迴圈。
wp_reset_postdata();
在這裡,傳遞給WP_Query的引數是 post_type 為 post 。所以,我們看到它顯示的是文章(post)。
如果我們將 post_type 更改為 page :
$args = array(
'post_type' => 'page',
來到網站前臺,輸出的就是頁面的標題
現在,改回為POST。然後讓回到WP_Query的文件中,來到“分頁”,在這裡有一個非常重要的是posts_per_page。它用來設定“要顯示的文章的數量”。所以如果我們要新增另外一個引數,我們會把一個逗號,posts_per_page,然後是數字1:
$args = array(
'post_type' => 'post',
'posts_per_page' => 1
來到網站前臺,重新整理,這裡就只會顯示一篇文章:
我們也可以自定義顯示的順序。在這裡我們看到升序和降序。
$args = array(
'post_type' => 'post',
'order' => "ASC"
來到網站前臺,重新整理,文章就會按照升序排序:
在這篇關於Wp_Query這篇文件中,還可以看到它很多其它的例子。
所以Wp_Query這個文件還有很多內容,它甚至允許你通過自定義欄位進行搜尋,並且做了很多來定製的輸出方式。我們現在就講到這裡。但是,鼓勵大家繼續深入瞭解這些內容,以便你可以瞭解使用WP_Query定製各種各樣的功能。
相關文章
- 用WP_Query自定義WordPress主迴圈
- WordPress開發入門08:自定義函式和WordPress鉤子函式
- WordPress開發入門06:條件判斷與迴圈
- wordpress 自定義登入表單
- WordPress開發入門09:WordPress編碼標準
- WordPress入門07-WordPress新建頁面和管理頁面
- WordPress開發入門05:模板標籤
- c#入門-while迴圈C#While
- 自定義 View 迴圈滾動刻度控制元件View控制元件
- Java入門學習-學習if & else,for迴圈,foreach迴圈,while迴圈的用法。JavaWhile
- 迴圈神經網路入門神經網路
- wordpress 生成自定義 meta box
- PHP快速入門教程:WHILE迴圈示例PHPWhile
- WordPress 主題開發:從入門到精通(必讀)
- wordpress 自定義路由及展示頁路由
- 「HTML+CSS」--自定義載入動畫【007】HTMLCSS動畫
- WordPress開發入門02:WordPress中不同目錄型別的PHP檔案型別PHP
- WordPress開發入門01:Windows本地安裝WordPress和PHP除錯環境WindowsPHP除錯
- 讓自定義的容器,也能基於範圍迴圈
- RNN 迴圈神經網路系列 5: 自定義單元RNN神經網路
- 自定義雙向迴圈連結串列基本函式介面函式
- Python基礎(07):迴圈Python
- Java入門系列-09-迴圈結構Java
- 【廖雪峰python入門筆記】for迴圈Python筆記
- Cordys BOP 4平臺開發入門實戰演練——While迴圈流程建模開發及測試While
- ArcObjects SDK開發 007 自定義App-Command-Tool框架ObjectAPP框架
- Python趣味入門5:迴圈語句whilePythonWhile
- javascript新手入門之條件語句,迴圈JavaScript
- 【廖雪峰python入門筆記】while迴圈Python筆記While
- 【廖雪峰python入門筆記】多重迴圈Python筆記
- Python中for迴圈和while迴圈有什麼區別?Python入門教程PythonWhile
- Android 自定義 View 之入門篇AndroidView
- webpack 快速入門 系列 - 自定義 wepack 上Web
- Qt入門(19)——自定義視窗部件QT
- web前端開發教程-while迴圈Web前端While
- 鴻蒙開發TypeScript語言:【迴圈】鴻蒙TypeScript
- WordPress入門09-WordPress基本設定
- JS優化迴圈之展開迴圈JS優化