WordPress - get_template_directory()返回父主题的网址

时间:2017-02-06 17:02:04

标签: php html wordpress include

我试图在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');
}
?>

2 个答案:

答案 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}}