自定义模板不适用于现有页面

时间:2020-10-10 作者:francisMi

我在玩弄每页使用一个自定义模板。(因为我需要每页加载不同的帖子类型)。

当创建一个新页面,并通过页面属性将我的自定义模板链接到它时,一切都正常。我在新页面上看到了应用的特定模板。

现在,在现有页面(=我的生产页面)上选择我的特定模板时,它不起作用。。。它只显示索引的内容。php。

我已经找了好几个小时了。。。清除缓存等没有帮助。删除页面并重新创建也没有什么好运气。(网站位于SiteGround上)

编辑:将父级(在页面属性框中)添加到我的页面时,将加载正确的tempalte。。。但为什么不在我的根页面上呢?

EDIT2:另外,我的Woocommerce‘shop’页面不再加载,似乎相关,它正在使用索引。php而不是Woocommerce本身的模板。

EDIT3:我发现了这个:WP is not using the select custom template.php that its selected for a page-&燃气轮机;我也确实使用了与我的页面同名的自定义帖子类型,这可能就是问题所在。但为什么WooCommerce使用的页面“shop”仍然使用索引,我会遇到同样的问题。php模板?我没有自定义的帖子类型“shop”。。。

1 个回复
SO网友:ktscript

作为一种解决方案,您可以使用段塞名称为一组页面完全自动选择模板:

add_filter(\'request\', function( $vars ) {

    $slug =  explode(\'/\', explode(\'?\', $_SERVER[\'REQUEST_URI\'])[0]);

    array_pop ($slug);

    $temp_base = "...first_part_template_name...";
    $temp_slug = array_pop ($slug);

    if (file_exists(get_template_directory().\'/\'.$template.\'-\'.$temp_cat.\'.php\')) {
        get_template_part( $temp_base, $temp_slug );
    } 
}

相关推荐

Updating modified templates

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