在使用 WordPress 開發時,子佈景主題(Child Theme)是擴展與自訂網站的常用方法。然而,許多開發者在操作時會遇到一個常見問題:使用 get_template_directory_uri()
函式時,卻始終取得父佈景主題的路徑,而非子佈景主題的路徑。
本文將深入探討這一問題,並提供正確的方法幫助你取得子佈景主題的路徑。
函式差異解析
WordPress 提供了兩個與佈景主題目錄相關的函式,各自用途如下:
1. get_template_directory_uri()
- 功能: 始終回傳 父佈景主題 的目錄 URI。
- 適用場合: 用於需要載入父佈景主題中的資源檔案時,即使子佈景主題啟用也不影響。
2. get_stylesheet_directory_uri()
- 功能: 回傳當前啟用的佈景主題目錄 URI。如果啟用的是子佈景主題,則回傳子佈景主題的目錄 URI。
- 適用場合: 用於讀取子佈景主題中的資源檔案,或者在開發子佈景主題時需要引用本地檔案時。
解決方法:正確取得子佈景主題路徑
如果你希望取得子佈景主題的路徑,請改用 get_stylesheet_directory_uri()
。以下是幾個實際的使用範例:
1. 取得子佈景主題的 URI
假設你需要直接取得子佈景主題的路徑:
$child_theme_uri = get_stylesheet_directory_uri(); echo $child_theme_uri; // 輸出子佈景主題的 URI
2. 正確加載子佈景主題的 CSS 檔案
在子佈景主題中正確讀取樣式表(style.css
):
function enqueue_child_theme_styles() { wp_enqueue_style('child-theme-style', get_stylesheet_directory_uri() . '/style.css', array(), '1.0.0'); } add_action('wp_enqueue_scripts', 'enqueue_child_theme_styles');
3. 讀取子佈景主題中的圖片
如果你需要在子佈景主題中引用圖片,例如 images/logo.png
,可以這樣寫:
<img src="<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" alt="Logo">
總結
get_template_directory_uri()
:用於取得父佈景主題的路徑。get_stylesheet_directory_uri()
:用於取得當前啟用的佈景主題路徑(包括子佈景主題)。
如果你正在開發子佈景主題,建議優先使用 get_stylesheet_directory_uri()
來確保正確讀取資源檔案。同時,對於需要引用父佈景主題的資源,可以繼續使用 get_template_directory_uri()
。
善用這兩個函式,將使你的子佈景主題開發更加順利且具備更高的靈活性!