2017-02-06 7 views
1

PHPの短いHTMLコンポーネントを後でサイトの別のページに組み込むようにしています。WordPress - 親テーマのURLを返すget_template_directory()

私はget_template_directory()を使用したいと思っています。実際のテーマのルートURLを返すと思っていました。私が使っているテーマは子供のテーマです。代わりに、親のルートディレクトリURLを返すようです。

これを行う正しい方法は何でしょうか? HTMLの一部いくつかのボタンを含むコンポーネントとしていくつかの異なるページに含めることを試みています。しかし、私はそれをプラグインとして含めていません。

私の子供のテーマのフォルダ内のすべてをチェックし、AFAIKはすべて正常に見えます。

私はこのコードをfunction.phpに入れています。私はこれまでに質問した前の質問から大丈夫だと思います。

<?php 
add_action('wp_enqueue_scripts', 'adapt_child_enqueue_styles'); 
function adapt_child_enqueue_styles(){ 
    wp_dequeue_style('theme-responsive'); 
    wp_enqueue_style('theme-child-style', get_template_directory_uri().'/style.css'); 
    wp_enqueue_style('theme-child-responsive', get_stylesheet_directory_uri().'/css/responsive.css'); 
} 
?> 

答えて

4

代わりのget_template_directoryを使用して()、子テーマのディレクトリではなく、親テーマのディレクトリを返します

get_stylesheet_directory() 

を使用しています。私は 後に、サイトの別のページに含めるPHPファイルに短いHTMLコンポーネントを作成しようとしているhttps://codex.wordpress.org/Function_Reference/get_stylesheet_directory

1

よりここに読んでください。

説明していることをテンプレート部分といいます。 と組み合わせたincludeステートメントを使用することは可能ですが、それを処理するより良い方法があります:get_template_part()

もう1人のユーザーがすでに指摘しているとおりです。現時点で直面している問題は、誤った機能の使用によるものです。 get_template_directory()は親テーマへのパスを返しますが、get_stylesheeet_directory()は現在/子テーマへのパスを返します。使用

例は次のとおりです。get_template_part()を使用して

include(get_stylesheet_directory() . '/my-template-part.php'); 

交換:

get_template_part('my-template-part'); 

get_template_part()機能はシンプルよりも堅牢である声明が含まれています。詳細については、ドキュメントをご覧ください:https://developer.wordpress.org/reference/functions/get_template_part/

+0

ここで私は、部分のPHPファイルを置く必要がありますか? – Lorthas

+1

テーマルートとの相対的な関係になります。上記のように使用すると、my-template-part.phpの子テーマが最初に表示されます。それが見つからない場合、親テーマをチェックします。テンプレートをフォルダに移動したいと思うかもしれません。例えば。 'get_template_part( 'テンプレートパーツ/マイテンプレートパーツ');' –

関連する問題