首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

WordPress 判斷函數大全:依頁面類型動態顯示內容

     編輯:MySQL 資料庫相關知識

WordPress 判斷函數大全:依頁面類型動態顯示內容

WordPress 提供豐富的條件判斷函數,讓佈景主題開發者能針對不同頁面類型(首頁、文章、分類、作者、歸檔等)輸出差異化內容。本文整理常用判斷函數語法、參數用法與實戰範例。

核心觀念

  • 判斷函數回傳 true/false,搭配 if/else 或 ?: 控制輸出。
  • 多數函數支援 ID、標題、Slug(別名) 三種參數型態。
  • 若在小工具中執行 PHP,需安裝 Exec-PHP 或 PHP Code Widget 外掛(注意安全性)。

一、文章頁面判斷

函數說明參數範例
is_single()是否為單篇文章頁is_single()、is_single(2)、is_single('Beef Stew')、is_single('beef-stew')
is_singular()文章/頁面/自訂文章型別(含單頁)is_singular('product')
comments_open()是否開放留言無參數
pings_open()是否開放 Pingback/Trackback無參數

二、頁面判斷

函數說明參數範例
is_page()是否為分頁is_page()、is_page(42)、is_page('About Me')、is_page('about-me')
is_front_page()是否為網站首頁(設定靜態首頁時)無參數
is_home()是否為部落格文章索引頁(預設首頁)無參數
關鍵差異:is_home() 為文章列表頁;is_front_page() 為網站首頁。若「設定 → 閱讀」指定靜態首頁,兩者會不同。

三、分類判斷

函數說明參數範例
is_category()是否為分類存檔頁is_category()、is_category(6)、is_category('Cheeses')、is_category('cheeses')
in_category()當前文章是否屬於某分類(用於單篇頁)in_category(5)、in_category('news')
is_tax()是否為自訂分類法存檔頁is_tax('genre')

四、作者歸檔判斷

函數說明參數範例
is_author()是否為作者存檔頁is_author()、is_author(1337)、is_author('Elite Hacker')、is_author('elite-hacker')

五、日期/時間歸檔判斷

函數說明
is_date()任意日期歸檔頁
is_year()年份歸檔頁
is_month()月份歸檔頁
is_day()日期歸檔頁
is_time()時間歸檔頁(罕用)

六、其他常用判斷

函數說明
is_archive()任意歸檔頁(分類、標籤、作者、日期等)
is_search()搜尋結果頁
is_404()404 找不到頁面
is_paged()分頁頁面(第 2 頁以後),?paged=2
is_attachment()附件頁面
is_feed()RSS/Atom Feed 頁面
is_trackback()Trackback 請求
is_preview()預覽模式
is_mobile()行動裝置(需 Jetpack 或外掛支援)

七、實戰範例

範例 1:僅首頁顯示友情連結

<?php if ( is_home() && !is_paged() ) : ?>
    <div class="blogroll">
        <?php wp_list_bookmarks(); ?>
    </div>
<?php endif; ?>
加上 !is_paged() 避免分頁時重複顯示。

範例 2:文章頁隱藏 Google 廣告,改顯示其他廣告

<?php if ( is_single() ) : ?>
    <!-- 文章頁專用廣告 -->
    <script src="other-ad.js"></script>
<?php else : ?>
    <!-- 其他頁面顯示 Google 廣告 -->
    <script src="adsense.js"></script>
<?php endif; ?>

範例 3:特定分類使用不同版型

<?php if ( in_category('news') ) : ?>
    <?php get_template_part('content', 'news'); ?>
<?php else : ?>
    <?php get_template_part('content', get_post_format()); ?>
<?php endif; ?>

範例 4:側邊欄依頁面顯示不同小工具區

<?php if ( is_active_sidebar('sidebar-' . ( is_single() ? 'post' : 'page' )) ) : ?>
    <?php dynamic_sidebar('sidebar-' . ( is_single() ? 'post' : 'page' )); ?>
<?php endif; ?>

八、進階技巧

  • 組合判斷:if ( is_category() && !is_paged() )、if ( is_single() || is_page() )。
  • 體系類別判斷:is_post_type_archive('product')、is_singular('product')(WooCommerce 常用)。
  • 在 functions.php 中預先計算:$is_home = is_home(); 避免模板中重複呼叫。
  • 區塊編輯器時代:區塊主題可用 has_block()、is_block_template() 等新判斷。

善用 WordPress 判斷函數,能讓佈景主題邏輯清晰、效能優異、維護容易。建議收藏本表,開發時隨查隨用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved