get_template_directory_uriは、子テーマではなく親テーマを指しています
2 回答
- 投票
-
- 2016-06-18
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
.get_template_directory_uri()
will always return the URI of the current parent theme.To get the child theme URI instead, you need to use
get_stylesheet_directory_uri()
.You can find these in the documentation, along with a list of other useful functions for getting various theme directory locations.
If you prefer to use a constant, then
TEMPLATEPATH
is akin to callingget_template_directory()
(i.e. the parent theme), andSTYLESHEETPATH
is akin to callingget_stylesheet_directory()
(i.e. the child theme).These constants are set by WordPress core in
wp-includes/default-constants.php
and basically look like this:define('TEMPLATEPATH', get_template_directory()); ... define('STYLESHEETPATH', get_stylesheet_directory());
If there is no child theme, then both the 'template' and 'stylesheet' functions will return the parent theme location.
Note the difference between these functions and the functions ending in
_uri
- these will return the absolute server path (eg./home/example/public_html/wp-content/yourtheme
), whereas the_uri
functions will return the public address (aka URL) - eg.http://example.com/wp-content/themes/yourtheme
.-
include(TEMPLATEPATH. '/myGallery/gallery_functions_include.php');はどうですか?これも親ディレクトリに移動しますwhat about include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php'); this one also goes to the parent directory
- 0
- 2016-06-18
- Elroy Fernandes
-
@ElroyFernandesこれを私の答えに追加しました.STYLESHEETPATHは、代わりに必要な定数です@ElroyFernandes I've added this to my answer. STYLESHEETPATH is the constant you'd want instead
- 0
- 2016-06-18
- Tim Malone
-
RTMと言うだけでなく、質問に答えてくれてありがとう.これは私の検索結果で最初にポップアップしました.Thanks for answering the question instead of just saying RTM. This popped up first in my search results.
- 2
- 2017-05-04
- rinogo
-
良い答えですが、WordPressの名前は悪いです-それはスタイルシートだけでなく、JS、アセット、インクルードなどのためのものです.Good answer but bad naming on WordPress's part - it's not just for stylesheets, it's for JS, assets, includes etc.
- 2
- 2018-09-21
- Paul Feakins
-
@PaulFeakins WordPressの名前の不一致を始めないでください.これは、誰がどこを知っているかを導く長くて風の強い道です.;)@PaulFeakins Don’t get started on naming inconsistencies in WordPress - that’s a long and windy road that leads who-knows-where! ;)
- 1
- 2018-09-21
- Tim Malone
-
- 2018-06-06
アクティブなテーマによって制御されていないカスタムテンプレートを子フォルダーに移動する必要があります.
テーマをすべてのカスタマイズされたファイルから分離しておくと、カスタム作業を失うことなくテーマを更新できます.
すぐに使えるテーマはここにあります ------------------------------------ \\ Site \ 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 \include \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 ');
get_stylesheet_directory_uri()とxhr呼び出しなど
You should move your custom templates, those that are not controlled by the active theme, to a child folder.
Keep the theme separate from all customized files this way the theme can be updated without losing your custom work.
Your out-of-the-box theme lives here ------------------------------------ \\Site\wp-content\themes\some_theme
Your child theme lives here --------------------------- \\Site\wp-content\themes\some_theme-child
Your custom styles and templates and all your includes (things like custom javascript, images that are not saved to WP, custom fonts, json data files, and any plugins that you might enqueue) should be moved to child folder OUTSIDE of theme.
\themes\some_theme \themes\some_theme-child\ (all your custom php template files here) \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
For your custom style pages (not the theme's overridden style.css) enqueue with wp_enqueue_style( 'some-css', get_stylesheet_directory() . '/style/some.css' , false, '0.0.1', 'all');
Use get_stylesheet_directory_uri() with your xhr calls, etc.
私が抱えている問題は、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');