概要
get_parent_theme_file_path
関数は、子テーマから親テーマ内にあるファイルのパス名を取得するための関数です。この関数は、主に以下のような場面で使用されます。
- 親テーマに定義されたカスタムテンプレートを利用する際。
- 親テーマ内のスタイルシートやスクリプトを読み込むとき。
- 親テーマで使用する画像やメディアファイルへのパスを取得するため。
- テーマの設定画面で親テーマのオプションを参照するとき。
- 子テーマのカスタマイズにおいて親テーマのリソースを使用する際。
- プラグインを開発する際に親テーマのファイルに依存する場合。
- ドキュメント生成などで親テーマのリソースを参照する際。
- テストやデバッグのために親テーマのファイルパスを確認する際。
構文
get_parent_theme_file_path( $file = '' );
パラメータ
$file
(string) – 取得したいファイルの相対パス。省略可能で、デフォルトは空の文字列。
戻り値
- (string) – 親テーマ内の指定したファイルのパス。ファイルが存在しない場合は、空文字列を返す。
関連する関数
使用可能なバージョン
- WordPress 3.0.0以降
コアファイルのパス
wp-includes/theme.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | 〇 |
after_setup_theme | 〇 |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | 〇 |
get_header | |
wp_head |
サンプルコード
サンプルコード 1: 親テーマのスタイルシートを読み込む
$stylesheet_path = get_parent_theme_file_path( 'style.css' );
if ( file_exists( $stylesheet_path ) ) {
wp_enqueue_style( 'parent-style', $stylesheet_path );
}
このコードは、親テーマのstyle.css
ファイルのパスを取得し、そのファイルが存在する場合に読み込むためのものです。
サンプルコード 2: 親テーマのカスタムテンプレートを使用
$template_path = get_parent_theme_file_path( 'template-parts/content.php' );
include $template_path;
このコードでは、親テーマに存在するカスタムテンプレートをインクルードする際にファイルのパスを取得しています。
サンプルコード 3: 親テーマの JavaScript を追加
$script_path = get_parent_theme_file_path( 'js/custom-script.js' );
if ( file_exists( $script_path ) ) {
wp_enqueue_script( 'parent-script', $script_path, array(), null, true );
}
このサンプルは、親テーマ内のJavaScriptファイルのパスを取得し、条件を満たす場合に読み込むものです。
サンプルコード 4: 親テーマにある画像を取得
$image_path = get_parent_theme_file_path( 'images/logo.png' );
echo '<img src="' . esc_url( $image_path ) . '" alt="Logo">';
このコードは、親テーマの画像ファイルのパスを取得して、それをHTMLの<img>
タグとして出力します。
サンプルコード 5: 親テーマのファイルをデバッグ用に表示
$file_path = get_parent_theme_file_path( 'debug.txt' );
if ( ! empty( $file_path ) ) {
echo 'Parent Theme File Path: ' . esc_html( $file_path );
}
このコードスニペットは、親テーマの特定のファイルのパスを取得し、それをデバッグ目的で表示しています。