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');
#1 楼
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());
如果没有子主题,则“ template”和“ stylesheet”函数都将返回父主题位置。
请注意这些函数与以
_uri
结尾的函数之间的区别-这些将返回绝对服务器路径(例如/home/example/public_html/wp-content/yourtheme
),而_uri
函数将返回公共地址(即URL)-例如。 http://example.com/wp-content/themes/yourtheme
。#2 楼
您应该将自定义模板(不受活动主题控制的模板)移动到子文件夹。通过这种方式可以将主题与所有自定义文件分开,从而可以在不丢失自定义工作的情况下更新主题。
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数据文件以及您可能会排队的任何插件)应移至子文件夹OUTSIDE
\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
对于您的自定义样式页面(不是主题的重写style.css),使用
wp_enqueue_style('some-css',get_stylesheet_directory( )。'/style/some.css',false,'0.0.1','all');
在xhr调用中使用get_stylesheet_directory_uri()等。
#3 楼
用include (TEMPLATEPATH . '/path-to/my-file.php');
include dirname( __FILE__ ) . '/path-to/my-file.php';
这对于大多数常见问题应该有效
评论
怎么包含(TEMPLATEPATH。'/myGallery/gallery_functions_include.php');这个也转到父目录
– Elroy Fernandes
16年6月18日在4:24
@ElroyFernandes我已将此添加到我的答案中。 STYLESHEETPATH是您想要的常量
–蒂姆·马隆(Tim Malone)
16年6月18日在4:31
感谢您回答问题,而不仅仅是说RTM。这首先出现在我的搜索结果中。
– rinogo
17年5月4日在18:46
答案不错,但WordPress的命名却不好-它不仅用于样式表,还用于JS,资产,包含等。
– Paul Feakins
18/09/21在16:29
@PaulFeakins不要开始在WordPress中命名不一致的问题-这是一条漫长而多风的道路,导致人们知道哪里去了! ;)
–蒂姆·马隆(Tim Malone)
18年9月21日在21:55