萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

WordPress 條件判斷函式大全:依頁面類型顯示不同內容的完整技巧

核心原理

WordPress 提供豐富的條件標籤,讓主題開發者在模板中依頁面類型、分類、作者、日期等條件,靈活控制內容顯示邏輯。

基本語法模式

<?php if (is_home()) : ?>
  <!-- 僅首頁顯示:友情連結 -->
  <div class="blogroll">...</div>
<?php endif; ?>

<?php if (is_single()) : ?>
  <!-- 文章頁顯示:相關文章 -->
<?php else : ?>
  <!-- 其他頁面顯示:廣告 -->
<?php endif; ?>

分類完整條件標籤速查表

1. 文章/單一文章頁面

函式說明參數範例
is_single()任意單一文章頁-
is_single('42')ID 為 42 的文章ID
is_single('Hello World')標題為 "Hello World"標題
is_single('hello-world')Slug 為 hello-worldSlug
is_single([42, 'hello-world'])多條件陣列(OR 關係)陣列
comments_open()是否開放留言-
pings_open()是否開放 Pingback/Trackback-

2. 頁面

函式說明
is_page()任意頁面
is_page('42')ID 42
is_page('About Me')標題判斷
is_page('about-me')Slug 判斷

3. 分類/標籤/分類法

函式說明
is_category()任意分類封存頁
is_category(6)ID 6
is_category('Cheeses')名稱/Slug
in_category(5)當前文章屬於分類 5(單文頁常用)
is_tag()任意標籤頁
is_tax('genre')自訂分類法

4. 作者封存

函式說明
is_author()任意作者頁
is_author(1337)ID 1337
is_author('Elite Hacker')暱稱
is_author('elite-hacker')Slug

5. 日期/封存/搜尋/其他

函式說明
is_date()任意日期封存
is_year() / is_month() / is_day() / is_time()年/月/日/時間封存
is_archive()任意封存頁(分類/標籤/日期/作者)
is_search()搜尋結果頁
is_404()404 頁面
is_paged()分頁頁面(/page/2 等)
is_attachment()附件頁
is_feed()Feed 頁面
is_trackback()Trackback 頁面
is_preview()預覽模式
is_front_page()網站首頁(含靜態首頁設定)
is_home()文章索引頁(預設首頁)

實戰組合技巧

1. 僅首頁第一頁顯示(排除分頁)

<?php if (is_home() && !is_paged()) : ?>
  <!-- 首頁專屬輪播 -->
<?php endif; ?>

2. 文章頁且屬於特定分類

<?php if (is_single() && in_category('news')) : ?>
  <!-- 新聞類文章專屬版面 -->
<?php endif; ?>

3. 側邊欄小工具支援 PHP

預設小工具不執行 PHP。安裝 PHP Code Widget 或 Widget Logic 外掛,或在 functions.php 加入:

add_filter('widget_text', 'do_shortcode'); // 允許短代碼
// 或
add_filter('widget_text', function($text) {
    return eval('?>' . $text); // 高風險,僅信任管理員環境
});

偵錯技巧

<?php if (current_user_can('manage_options')) : ?>
  <pre><?php
    var_dump([
        'is_home' => is_home(),
        'is_front' => is_front_page(),
        'is_single' => is_single(),
        'is_page' => is_page(),
        'paged' => get_query_var('paged')
    ]);
  ?></pre>
<?php endif; ?>

結語

善用條件標籤能讓主題邏輯清晰、效能優化(避免不必要查詢)。建議收藏本速查表,開發時隨查隨用。

copyright © 萬盛學電腦網 all rights reserved