我试图在PHP文件中创建一个简短的HTML组件,以便稍后将其包含在网站的不同页面中。
我想使用get_template_directory()
因为我认为它会返回我的实际主题的根URL。我使用的主题是儿童主题。相反,它似乎正在返回父目录的根目录。
这样做的正确方法是什么? 我试图在一些不同的页面中包含HTML作为带有一些按钮的组件。但是我不把它作为插件包含在内。
我检查了我的儿童主题文件夹中的所有内容,AFAIK看起来一切正常。
我在function.php中有这个代码,我认为之前我在此问过的问题没问题。
<?php
add_action('wp_enqueue_scripts', 'adapt_child_enqueue_styles');
function adapt_child_enqueue_styles(){
wp_dequeue_style('theme-responsive');
wp_enqueue_style('theme-child-style', get_template_directory_uri().'/style.css');
wp_enqueue_style('theme-child-responsive', get_stylesheet_directory_uri().'/css/responsive.css');
}
?>
答案 0 :(得分:4)
使用
而不是使用get_template_directory()get_stylesheet_directory()
这将返回子主题目录而不是父主题目录。在这里阅读更多https://codex.wordpress.org/Function_Reference/get_stylesheet_directory
答案 1 :(得分:1)
我试图在PHP文件中创建一个简短的HTML组件来包含它 稍后在网站的不同页面。
您所描述的内容被称为模板部分。虽然可以使用include
语句与get_stylesheet_directory()
结合使用,但有更好的方法来处理它:get_template_part()
。
正如另一位用户已经指出的那样;您目前面临的问题是由于使用了错误的功能。 get_template_directory()
将返回父主题的路径,而get_stylesheeet_directory()
将返回当前/子主题的路径。
使用示例包括:
include( get_stylesheet_directory() . '/my-template-part.php' );
使用get_template_part()
替换:
get_template_part( 'my-template-part' );
get_template_part()
函数比简单的include语句更健壮。有关详细信息,请查看文档:{{3}}