如何在子主题中使is_page_template()可用?

时间:2016-09-19 作者:Zubair

我正在使用儿童主题。我想要no-sidebar.css 如果要加载page-nosidebar.php 已加载。因此,我编写了以下代码。它不起作用。但它适用于父主题:

function no_sidebar_style(){
    if (is_page_template(\'page-templates/page-nosidebar.php\')) {
        wp_enqueue_style( \'no-sidebar-style\', get_stylesheet_directory_uri().\'/css/no-sidebar.css\');
    }
}
add_action( \'wp_enqueue_scripts\', \'no_sidebar_style\', 19);
如果我写:

is_page_template(get_stylesheet_directory_uri().\'/page-templates/page-nosidebar.php\')
而不是:

(is_page_template(\'page-templates/page-nosidebar.php\')
如下所示,它仍然不工作:

function no_sidebar_style() {
    if (is_page_template(get_stylesheet_directory_uri().\'/page-templates/page-nosidebar.php\')) {
    wp_enqueue_style( \'no-sidebar-style\', get_stylesheet_directory_uri().\'/css/no-sidebar.css\');
    }
}
add_action( \'wp_enqueue_scripts\', \'no_sidebar_style\', 19);
我需要做什么才能使此代码正常工作?

1 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

您的第一个版本no_sidebar_style() 看起来不错:

function no_sidebar_style(){
    if (is_page_template(\'page-templates/page-nosidebar.php\')) {
        wp_enqueue_style( \'no-sidebar-style\', get_stylesheet_directory_uri().\'/css/no-sidebar.css\');
    }
}
add_action( \'wp_enqueue_scripts\', \'no_sidebar_style\', 19);
对于调试,可以使用get_page_template() 查看正在查看的模板的名称。

相关推荐

Updating modified templates

我想调整一些。php模板文件在我的WordPress主题中,我知道正确的过程是将相关文件复制到子主题文件夹中并在那里编辑文件,这样我的修改就不会在将来的主题更新中丢失。但这是否意味着我将无法从主题更新中获益,因为我将文件放在了我的子主题文件夹中?这可能不是一件好事,因为主题更新可能添加了一些有用的特性,甚至修复了我最初需要对代码进行调整的问题!这方面的常见解决方案是什么?有人推荐了一款Diff应用程序——这是人们常用的吗?