用WP_Query自定義WordPress主迴圈
我們知道操作 WordPress 主迴圈(WordPress Loop)最容易的方法是使用 query_posts 函式。
但是使用 query_posts 直接修改 WordPress 預設的主迴圈,會有以下的問題:
會干擾那些用到了 WordPress 迴圈的外掛。
可能使一些 WordPress 條件判斷函式失效。
需要去處理重新設定,回滾和偏移等問題。
使用 WP_Query 自定義 WordPress Loop
所以最好是使用 WP_Query,並建立自己的 WordPress 迴圈。
使用 WP_Query 第一步是建立你自己的變數,比如我們要建立一個最新日誌列表,就可以使用下面的程式碼:
<?php
$recentPosts = new WP_Query();
$recentPosts->query(`showposts=5`);
?>
上面程式碼定義了一個叫做 recentPosts 的變數,它是一 WP_Query 類的一個例項。然後我使用了 WP_Query 的一個方法開始一個查詢,我們可以使用和 query_posts 函式一樣的引數。現在就可以開始我們自己的迴圈了:
<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
<!– do some stuff here –>
<?php endwhile; ?>
上面我們用了 WP_Query 的兩個方法,分別是 have_posts 和 the_post。你可以從這篇文章全域性變數和 WordPress 主迴圈瞭解更多關於這兩個函式。
這樣做的好處是在迴圈中,我們可以使用標準的 post 模板函式。比如下面是使用自定義的 Loop 先是最新5篇文章的完整程式碼:
<h 3>最新日誌</h3>
<ul>
<?php
$recentPosts = new WP_Query();
$recentPosts->query(`showposts=5`);
?>
<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
<li><a href=”<?php the_permalink() ?>” rel=”bookmark”><?php the_title(); ?></a></li>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
</ul>
簡單總結
使用 WP_Query 自定義 WordPress 迴圈是不干擾預設的 WordPress 主迴圈,而自定義查詢的一種最簡單最好方法。所以我們還能一個頁面同時執行完全獨 WordPress 迴圈。
原文:我愛水煮魚http://blog.wpjam.com/article/define-wordpress-loop-using-wp_query/
相關文章
- WordPress開發入門07:WP_Query 自定義迴圈
- WordPress主題製作進階#10自定義主頁
- 自定義雙向迴圈連結串列基本函式介面函式
- 讓自定義的容器,也能基於範圍迴圈
- WordPress開發入門08:自定義函式和WordPress鉤子函式
- 小程式自定義音訊元件,帶滾動條,IOS迴圈失效問題音訊元件iOS
- 短視訊直播原始碼,自定義圖片或視訊的迴圈播放原始碼
- Custom Post Types [2.1.14] - WordPress高階自定義外掛
- WordPress開發入門06:條件判斷與迴圈
- 自定義部落格園主題
- 自定義單連結串列佇列的基本介面函式(非迴圈佇列)佇列函式
- win10如何自定義主題_win10怎麼設定自定義主題Win10
- 關於迴圈主鍵的設計
- 一文說透WordPress的自定義文章型別型別
- netty自定義Decoder用於自定義協議Netty協議
- for 迴圈與 while 迴圈While
- while迴圈 case迴圈While
- WordPress自定義欄位獲取get_post_meta函式函式
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- 【JavaScript實用技巧(一)】迴圈遍歷與跳出迴圈遍歷JavaScript
- for 迴圈中倒序 用reverse
- 字典功能的應用(迴圈)
- 無限for迴圈(死迴圈)
- Hexo 主題開發之自定義模板Hexo
- while迴圈以及do while迴圈While
- Go 1.22中for迴圈語義變得不同了Go
- if for迴圈
- For 迴圈
- if迴圈
- 迴圈
- for迴圈
- 釘釘小程式自定義年月日日期picker選擇器元件-日無限迴圈滾動元件
- 04流程控制 for迴圈,while迴圈While
- 自定義View實用小技巧View
- 用mysqlslap壓測自定義sqlMySql
- 怎樣用 Bash 程式設計:迴圈程式設計
- 用Java中for迴圈語句列印菱形Java
- for迴圈、break和continue、二重迴圈
- 【基礎題】【for迴圈】二重迴圈