WordPress 循環:它是什麼以及您需要了解什麼

已發表: 2023-10-25

如果您是 WordPress 主題開發人員、程式設計師,或者只是一個渴望了解 WordPress 循環是什麼的整體愛好者,那麼這篇文章適合您! 閒話少說,讓我們從基礎知識開始:什麼是循環?

WordPress 循環是一段 PHP 程式碼,用於顯示 WordPress 帖子,或簡單地說; 它用於各種主題中以在任何給定網頁上顯示帖子。 它不僅可以在您看到的大多數頁面上運行,而且還允許您根據自己的喜好進行修改和自訂。

這些網站循環可用於按評論數列出貼文、顯示帶有圖像的貼文等。

當您查看循環時,您可以看到一些函數預設運行以顯示帖子。 主題開發人員可以使用這些函數和模板標籤來自訂循環中每個帖子的顯示方式。

這些模板標籤僅在 WordPress 預設循環內工作,用於格式化、排列和發布貼文資料。

WordPress 循環無疑是 WordPress 程式碼中最關鍵的部分,讓我們深入了解您的網站如何循環。

適合初學者的 WordPress 頁面循環

正如我們已經提到的,post 循環是一個輸出 WordPress 擁有的有關一個或多個帖子的所有資訊的程式碼。 它在後台運行每篇帖子,並逐一查找資料庫,從而提供有關所有找到的帖子的資訊。

以下是 WordPress 循環帖子工作原理的範例:

  1. 你開始循環,
  2. 對每個找到的貼文或頁面採取行動,
  3. 關閉循環。

這三個步驟代表了循環背後的基本邏輯。 從此時起,您可以發揮創意並使用查詢過濾找到的貼文。 查詢告訴循環我們正在尋找什麼。 在我們的範例中,它看起來像這樣:

  1. 定義我們正在尋找什麼,
  2. 開始循環,
  3. 對每個找到的貼文或頁面採取行動,
  4. 關閉循環。

如果您有使用 PHP 程式碼的經驗,您可能熟悉“while”函數,該函數在循環中使用來運行資料庫查詢並動態顯示信息,而無需手動輸入每個資料庫行。

WordPress while 迴圈的工作方式相同。

標準 WordPress 循環範例

以下是可在任何頁面上使用的標準 WordPress 循環範例。

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
// Post display here
<?php endwhile ?>
<?php else : ?>
// Content if there are no posts to show
<?php endif ?>

看一下have_posts()the_post()函數。 第一個確定是否有任何帖子要顯示,第二個設定資料和內部指針,這有助於has_posts()函數。

如果沒有任何內容可顯示,則函數應顯示一則訊息通知使用者。

如果有我們要找的帖子,那麼循環會一一顯示它們。

在這裡,有一段可以實際顯示帖子的程式碼,它由我們承擔!

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
<div <?php post_class() ?>>
<h2><a href='<?php the_permalink() ?>'><?php the_title() ?></a></h2>
<div class='post-excerpt'>
<?php the_excerpt() ?>
</div>
<div class='post-meta'>
<time><?php the_time( 'Ymd' ) ?></time>
<?php if ( has_category() ) : ?>
<span class='post-categories'><?php the_category( ', ' ) ?></span>
<?php endif ?>
</div>
</div>
<?php endwhile ?>
<?php else : ?>
<h2>There are no posts here</h2>
<p>Do you want to go back to the <a href='<?php echo site_url() ?>'>home page?
<?php endif ?>

這裡顯示的內容是由我們已經討論過的查詢決定的,而內容的顯示方式取決於循環。 如此大量的客製化是非常棒的,這也是 WordPress 脫穎而出的原因。

做得好! 現在你知道什麼是後循環了!

使用程式碼更改主查詢

在開始之前,我們必須警告您,如果您不知道自己在做什麼,則更改主查詢可能會產生意想不到的後果。 實驗時要小心!

如果我們想修改核心功能,我們必須查看鉤子。 這些鉤子使我們能夠更改文字長度、更改登入畫面、重新措辭錯誤訊息、更改自訂貼文類型等等。

add_action( 'pre_get_posts', 'my_exclude_category' );
function my_exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-92' );
}
}

請注意,我們在主查詢執行之前使用pre_get_post掛鉤來修改主查詢的參數。 上面的程式碼與先前的程式碼執行相同的操作,但這次它從我們的主頁中排除了類別 92。 因此,修改主查詢

看一下is_home()is_main_query()函數。 他們在這裡確保查詢僅在主頁上修改,並且它是主查詢。

這是另一個在 WordPress 部落格循環中有用的程式碼。

假設您網站上的一位作者抄襲了他或她的部分(或全部)內容,並且您希望永久刪除他或她的所有帖子,或直到問題解決為止。

這可以透過添加以下程式碼來完成:

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
$query->set( 'author', '-23' );
}

使用此條件函數,您可以從您的網站和後端刪除作者的貼文。 您可以在 WordPress Codex 中找到所有條件標籤。 最後的程式碼最終應該是這樣的:

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
if( !is_admin() ) {
$query->set( 'author', '-23' );
}
}

WordPress 循環常見問題解答

WordPress 循環到底是什麼?

天哪,這讓我回來了! 因此,從本質上講, WordPress 循環是 WP 的引擎,用於在網站上顯示資料庫中的內容。

它是許多 WP 模板的核心,告訴系統要顯示哪些貼文或頁面以及以什麼順序。 將其視為 WordPress 派對的 DJ,為您的客人挑選合適的曲調(或貼文)。

為什麼循環在主題開發中如此重要?

啊,主題開發,每次都是一個有趣的謎題! 循環就像 WordPress 主題的主幹。 沒有它,你的主題將是一部沒有情節的無聲電影。

它根據WP_Query參數來取得內容,並透過範本標籤,您可以自訂內容的顯示內容和方式。 聽過某些貼文有特殊風格的主題嗎? 是的,這就是循環的魔力。

WP_Query 與循環有何關係?

好吧,跟我一起潛入這裡吧。 WP_Query是定義和取得內容的類別。 然後循環遍歷 WP_Query 傳回的結果。

將 WP_Query 視為準備菜餚的廚師,而循環則將菜餚提供給客人。 透過自訂貼文類型和分類法,這位廚師可以烹製出一系列令人印象深刻的菜餚!

have_posts() 和 the_post() 有什麼不同?

經典問題! have_posts()檢查查詢中是否還有要循環的貼文。 這就像在問:“嘿,該播放清單上還有其他歌曲嗎?”

同時, the_post()設定當前帖子,以便您準備好顯示其詳細資訊。 這類似於播放下一首曲目。 兩者在循環舞蹈中都非常重要。

如何自訂循環中顯示的帖子?

啊,客製化的力量! 若要變更顯示的帖子,您可以調整WP_Query參數或使用pre_get_posts過濾器。

無論是類別循環標籤循環還是任何其他自訂查詢,您都可以做很多事情。 想要顯示某個類別的貼文? 或者可以按自訂字段對它們進行排序? 世界是你的牡蠣!

一頁中可以有多個循環嗎?

完全正確! 多個循環是一回事,特別是當您想要不同的部分時,例如主文章列表,後面是包含最近帖子的側邊欄。

您只需要在每個自訂WP_Query之後使用wp_reset_postdata()重置循環。 有了模板部件,它就更有條理了。 請記住不要做得太過分——沒有人喜歡雜亂的聚會!

循環上下文中的條件標籤是什麼?

因此,條件標籤是循環的看門人。 它們可以讓您控制某些內容的顯示位置和時間。

您可以使用它們僅在單一貼文上或僅在特定分類中顯示一段內容。 他們就像 WP 俱樂部的保鏢,根據賓客名單決定誰可以進入。

如何為循環添加分頁?

啊,分頁,不讓訪客不知所措的藝術! 透過使用分頁功能,您可以將貼文分成多個頁面。

不要顯示無休止的帖子列表,而是讓您的用戶喘口氣。 像paginate_links()這樣的函數或經典的「下一個和上一個」連結在這裡會有所幫助。 因為,說實話,沒有人願意永遠滾動。

為什麼我需要修改主查詢?

好一個! 有時,預設設定並不能解決問題。 也許您希望主頁僅顯示特定的自訂貼文類型或排除某些類別。

透過使用pre_get_posts操作,您可以調整主查詢,而無需編寫新查詢。 這就像調整立體聲音響的主要設定以獲得完美的聲音一樣。

如果我的循環出現問題會怎麼樣?

噢,去過那裡! 如果循環出現問題,您的網站可能不會顯示任何內容,甚至更糟的是,會拋出錯誤。 修補之前務必進行備份。 檢查您的WP_Query參數和模板層次結構

如果一切都失敗了, WordPress Codex和社群論壇就是排除故障的金礦。 請記住,每個開發人員都至少面臨一次故障循環。 你得到了這個!

關於 WordPress 循環的結束想法

使用 WordPress 循環是自訂您的貼文、頁面或簡單地說 - 您的網站的好方法。 這個循環要求您對 WordPress 的工作原理和程式碼邏輯有基本的了解。

除非您想進行快速測試,否則我們不建議使用 query_posts() 函數。 如果需要修改原始查詢,您可以使用各種掛鉤。 更改 WordPress 循環程式碼時請務必小心。

我們希望這篇文章是您掌握 WordPress 循環的良好開端!

如果您喜歡這篇關於 WordPress 循環的文章,您還應該閱讀以下內容:

  • WordPress 中的 504 錯誤:如何修復
  • 創建成功的 WordPress 高級外掛程式或主題的 12 個技巧
  • 如何在 WordPress 中利用瀏覽器快取? 遵循的步驟