自定义模板未显示在模板下拉列表中


23

我在Wordpress(多站点)中的模板上遇到了一些问题。我已经在子主题文件夹(template-test.php)的根目录中创建了一个文件

<?php
/**
* Template Name: Test template
*
*/
?> 

<?php get_header(); ?>

<?php get_footer(); ?>

创建新页面或编辑现有页面时,此模板未显示在模板下拉菜单中。下拉列表中唯一的是“默认模板”。

到目前为止,我已经尝试过以下操作:-禁用和启用主题-刷新永久链接-检查文件的权限-检查style.css是否在模板文件夹的根目录中(是)

我在另一个Wordpress安装上尝试了相同的文件,并且在这里工作正常。


检查主题的根目录中是否有index.php
尤金(Eugene)

我遇到了同样的问题,并尝试了您提到的所有内容。您有解决方案吗?
wckronholm

就我而言,我什至在主题编辑器中都看不到该文件。@汤姆你解决了吗?
Ofir Baruch

Answers:


32

仅在Wordpress 4.9中,就有一个错误:https : //core.trac.wordpress.org/ticket/42573导致模板文件每小时仅重新扫描一次。

要修复(直到他们发布更改后的新WP版本),请在该故障单上下载补丁,并将补丁从更改为wp-includes/class-wp-theme.php

希望这可以节省我两个小时所浪费的时间。


3
您还可以将此代码添加到您的functions.php中,或将其添加为插件来停止缓存,而不是编辑核心文件:gist.github.com/westonruter/6c2ca0e5a4da233bf4bd88a1871dd950
Bradley4

8
另一个简单的解决方案是在论坛上@ ocean90指出的style.css文件中修改主题版本。
r1987

1
@ r1987 style.css更新成功了!
达里

对我而言,style.css已损坏,所以只需更新文件,您应该会很好


3

确保您的主主题中有index.php。主主题必须具有index.php。我有同样的问题,事实就是如此。通过检查:

function testate(){
    global $wp_themes;
    $tema = wp_get_theme();
    echo '<pre>';
    print_r($tema);
    die;
}

add_action('init', 'testate' );

2

我在WordPress Multisite上的网站上也遇到了这个问题,可以按照以下步骤解决:

  1. 转到http://example.com/wp-admin/network/themes.php(用网址替换example.com)。
  2. 单击引起您问题的主题下的“编辑”链接。
  3. 在右侧栏中,单击未显示的模板文件的名称。例如,它可能显示“事件页面模板(template_events.php)”。
  4. 不要对文件进行任何编辑,然后单击蓝色的“更新文件”按钮。
  5. 刷新您要在其中设置模板的页面的编辑屏幕,它现在应该显示在下拉菜单中。

如果这样做不适合您,我建议您查看http://vanseodesign.com/wordpress/wp-page-templates-dropdown/。那里还有其他可能的解决方案。

祝好运。


1

可以通过wp_themes在加载模板下拉菜单之前从全局变量中取消设置模板来停用模板。

在页面上运行以下代码以查看显示了哪些模板:

global $wp_themes;
$tema = wp_get_themes();
print_r($tema["child-theme folder name"]["Template Files"]);

如果您的模板未显示,则父主题可能已将其从数组中取消设置。

如果您在前端运行此代码,则它可能会显示出来,因为父主题可能只会在加载管理编辑器页面时取消设置。

下载父主题,然后搜索文件$wp_themeswp_get_themes();找到该代码的位置。

希望他们为您提供了一种使用过滤器阻止它的方法,如果没有,您可能必须在子主题中重新添加文件。这可能会有所帮助:http : //www.wpexplorer.com/wordpress-page-templates-plugin/



0

您是否意外地从主题根目录移走了style.css文件?

如果是这样,可能就是这样-重新创建主题style.css以重新启用模板下拉菜单。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.