2017-11-18 385 views
0

我刚刚在我的WP主题文件夹中添加了一个新的自定义模板文件。 这个新的模板开始喜欢我的人的模板文件:Wordpress页面模板不会出现在模板下拉列表中

<?php 
/* 
Template Name: My Template Name 
*/ 

Strangly,这个新的模板不内模板下拉列表中显示的管理页面编辑内。

它似乎有一个WP缓存问题或类似的东西...我试图清除我的浏览器的Cookie和缓存,清除我的服务器缓存等等,但它不起作用。

回答

1

经过一个多小时在网上搜索和测试很多东西更多,我发现我需要改变我的主题版本,让WP知道新的文件结构(内的style.css):

/* 
Theme Name: My Theme Name 
Version: 1.0.0 
*/ 

TO

/* 
Theme Name: My Theme Name 
Version: 1.0.1 
*/ 

最后和它的工作! 希望这将帮助别人;)

+0

我似乎能够创建一个模板,并成功地使其出现在相关的下拉菜单中,没有需要引用任何文件版本。有兴趣知道是否有其他人遇到过这个问题。 – Craig

+0

我从来没有听说过这种情况,官方WordPress网站甚至展示了如何创建一个像这样的全局模板<?php/*模板名称:示例模板* /?>没有提及任何地方的主题版本... –

+0

对不起,一些信息丢失......它发生在最后一次WP更新到4.9版本。在此版本之前,我从未遇到过这个问题。另外,主题版本位于style.css中,而不是在每个模板文件中声明。谢谢! –

0

如果您安装了WP-CLI,尝试运行wp cache flush

你可以把这个代码到你的functions.php

 
function fix_template_caching(WP_Screen $current_screen) { 
    if (! in_array($current_screen->base, array('post', 'edit', 'theme-editor'), true)) { 
     return; 
    } 
    $theme = wp_get_theme(); 
    if (! $theme) { 
     return; 
    } 
    $cache_hash = md5($theme->get_theme_root() . '/' . $theme->get_stylesheet()); 
    $label   = sanitize_key('files_' . $cache_hash . '-' . $theme->get('Version')); 
    $transient_key = substr($label, 0, 29) . md5($label); 
    delete_transient($transient_key); 
} 

add_action('current_screen', 'fix_template_caching'); 

参考:Fix for theme template file caching https://gist.github.com/westonruter/6c2ca0e5a4da233bf4bd88a1871dd950

:)