[WordPress] 改寫主題繼承內容對應的範本(template)檔案方法

本篇文章更新時間:2023/12/02
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


WordPress 強大的地方不只是單純的「勾點」設計。主題的引入架構也是一絕,從理解 Template Hierarchy 範本階層架構就可以知道,如果要把某一個單獨的內容透過「完全不同」方式來呈現也不是問題。變數形式的將範本檔案 template file 給建立並置放於佈景(子)主題中就可以。

不過如果有想要更彈性與更多變化的方式來繼承內容對應範本,還可以從 template_include 這勾點下手。

範例如下:

function mxp_apply_custom_template_method($template) {
    // 此範例舉例從每一個內容都有對應的一個 Post ID 下手
    $post_id = get_the_ID();
    // 進入到捕捉到的條件後,這裡面邏輯就是去代入對應新範本的邏輯
    $file = get_stylesheet_directory() . '/mxp-post-id-' . $post_id . '.php';
    // 判斷是否有這個檔案,有就替換範本路徑
    if (file_exists($file)) {
        $template = $file;
    }
    // 不管有無滿足上述邏輯條件,都要回傳這個範本檔案的資訊,好讓 WordPress 呼叫
    return $template;
}
add_filter('template_include', 'mxp_apply_custom_template_method', 99);

上面舉例就是新增一個變數類型的內容範本取代方式。如果在(子)主題下有出現對應該篇文章的 mxp-post-id-XXXX.php 就會以這方式來帶入呼叫呈現。

所以每一篇文章或是網站上的任何一個內容,其實在呈現上都有極高的彈性去覆寫。有一百篇文章,想呈現一百種樣式,都不是問題~


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Mastodon