子テーマではなく親テーマを指すget_template_directory_uri


35

私が持っている問題は、get_template_directory_uriが親テーマを指しているということです site/wp-content/themes/twentythirteen/myGallery/gallery_functions_include.php

しかし、私はそれが私の子供のテーマを指すようにしたいです site/wp-content/themes/child-twentythirteen/myGallery/gallery_functions_include.php

私が使用しているのは include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php');

回答:


70

get_template_directory_uri() は常に現在の親テーマのURIを返します。

代わりに子テーマURIを取得するには、を使用する必要がありますget_stylesheet_directory_uri()

これらは、さまざまなテーマディレクトリの場所を取得するための他の便利な関数のリストとともに、ドキュメントで見つけることができます。


定数を使用する場合、TEMPLATEPATH呼び出しget_template_directory()(親テーマ)にSTYLESHEETPATH似ており、呼び出しget_stylesheet_directory()(子テーマ)に似ています。

これらの定数は、WordPressコアによって設定されwp-includes/default-constants.php、基本的に次のようになります。

define('TEMPLATEPATH', get_template_directory());
...
define('STYLESHEETPATH', get_stylesheet_directory());

子テーマがない場合、「テンプレート」および「スタイルシート」関数の両方が親テーマの場所を返します。

これらの関数とで終わる関数の違いに注意してください_uri-これらは絶対サーバーパス(例/home/example/public_html/wp-content/yourtheme:)_uriを返しますが、関数はパブリックアドレス(別名URL)-を返します。http://example.com/wp-content/themes/yourtheme


インクルード(TEMPLATEPATH。 '/myGallery/gallery_functions_include.php')はどうですか。これも親ディレクトリに移動します
エルロイフェルナンデス

@ElroyFernandesこれを回答に追加しました。STYLESHEETPATHがあなたの代わりにしたいと思い一定である
ティム・マローン

2
RTMと言うだけでなく、質問に答えてくれてありがとう。これは私の検索結果で最初に現れました。
-rinogo

2
良い答えですが、WordPressの名前は間違っています-スタイルシートだけでなく、JS、アセット、インクルードなどのためです。
Paul Feakins

1
@PaulFeakins WordPressの名前の不一致に取り掛からないでください-それは誰が知っている場所を導く長くて風が強い道です!;)
ティムマローン

0

アクティブなテーマによって制御されていないカスタムテンプレートを子フォルダーに移動する必要があります。

テーマをすべてのカスタマイズされたファイルから分離しておくと、カスタム作業を失うことなくテーマを更新できます。

すぐに使えるテーマがここにあります
------------------------------------
\\サイト\ wp-content \ themes \ some_theme
あなたの子供のテーマはここにあります
---------------------------
\\ Site \ wp-content \ themes \ some_theme-child

カスタムスタイルとテンプレート、およびすべてのインクルード(カスタムjavascript、WPに保存されない画像、カスタムフォント、jsonデータファイル、エンキューする可能性のあるプラグインなど)は、テーマ外の子フォルダーに移動する必要があります。

\ themes \ some_theme
\ themes \ some_theme-child \(すべてのカスタムphpテンプレートファイルはこちら)
\ themes \ some_theme-child \ images
\ themes \ some_theme-child \ includes 
\ themes \ some_theme-child \ languages
\ themes \ some_theme-child \ json 
\ themes \ some_theme-child \ style

テーマのオーバーライドされたstyle.cssではなく)カスタムスタイルページの場合、 wp_enqueue_style( 'some-css'、get_stylesheet_directory()。 '/style/some.css'、false、 '0.0.1'、 'all')でエンキューします。

xhr呼び出しなどでget_stylesheet_directory_uri()を使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.