本篇文章更新時間: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
就會以這方式來帶入呼叫呈現。
所以每一篇文章或是網站上的任何一個內容,其實在呈現上都有極高的彈性去覆寫。有一百篇文章,想呈現一百種樣式,都不是問題~