web-dev-qa-db-ja.com

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

私が抱えている問題は、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');です

29
Elroy Fernandes

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

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

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


定数を使用したい場合は、TEMPLATEPATHget_template_directory()(つまり親テーマ)を呼び出すのと同じことであり、STYLESHEETPATHget_stylesheet_directory()(つまり子テーマ)を呼び出すのと同じことです。

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

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

子テーマがない場合は、 'template''stylesheet'の両方の関数が親テーマの場所を返します。

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

60
Tim Malone

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

カスタマイズしたファイルをすべてカスタマイズしたファイルとは別にして、カスタムの作業内容を失うことなくテーマを更新できます。

すぐに使えるテーマはここにあります
 ---------------------------------- -  
 \\ 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 \インクルード
\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() を使用してください。

0
Greg Bologna