GET_TEMPLATE_DIRECTORY_URI指向父主题,而不是子主题

时间:2016-06-18 作者:Elroy Fernandes

我遇到的问题是get\\u template\\u directory\\u 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\');

3 个回复
最合适的回答,由SO网友:Tim Malone 整理而成

get_template_directory_uri() 将始终返回当前父主题的URI。

要获取子主题URI,需要使用get_stylesheet_directory_uri().

你可以找到这些in the documentation, 以及用于获取各种主题目录位置的其他有用函数的列表。

如果你喜欢使用常数,那么TEMPLATEPATH 类似于呼叫get_template_directory() (即父主题),以及STYLESHEETPATH 类似于呼叫get_stylesheet_directory() (即儿童主题)。

这些常量由WordPress core在中设置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.

SO网友:Gregory Bologna

您应该将自定义模板(不受活动主题控制的模板)移动到子文件夹中。

将主题与所有自定义文件分开,这样可以在不丢失自定义工作的情况下更新主题。

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
您的自定义样式和模板以及所有包含内容(如自定义javascript、未保存到WP的图像、自定义字体、json数据文件以及您可能排队的任何插件)都应该移动到主题之外的子文件夹中。

\\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
对于自定义样式页面(不是主题的覆盖样式。css),请使用wp\\u enqueue\\u样式(\'some css\')排队,get_stylesheet_directory() . \'/风格/一些。css\',false\',0.0.1\',all\';

使用get_stylesheet_directory_uri() 使用xhr呼叫等。

SO网友:D.Y.

代替

include (TEMPLATEPATH . \'/path-to/my-file.php\');

具有

include dirname( __FILE__ ) . \'/path-to/my-file.php\';

这应该适用于最常见的问题