2012-01-20 68 views
3

我正在運行Wordpress 3.3.1。無法將自定義頁面模板添加到我的子主題

我正在寫一個修改默認twentyeleven主題的兒童主題。一切似乎正常,除了當我添加一個自定義頁面模板,它不會出現在添加/編輯屏幕(所以我不能使用它!)。

爲了詳細說明「正常」,下面是什麼工作: 我的孩子主題出現並正常激活。 我的CSS代碼(在style.css中)正在出現。 我從模板層次結構中的文件正在工作(例如:front-page.php,page.php)

我已經閱讀並重新閱讀了代碼和我的自定義頁面模板文件(「coming-soon.php」)似乎有正確的標題:

<?php 
/* 
    Template Name: Coming Soon 
*/ 

那麼,爲什麼它不出現在「模板」下拉菜單?

我已經添加了自定義模板幾十次,從來沒有這個問題。我能想到的唯一可能的區別是我正在編寫一個兒童主題(即使代碼表示這應該不重要),或者也可能是WP的最新更新中的差異。

+0

您是否嘗試將此頁面模板添加到另一個主題(甚至是2011本身)以查看它是否是主題中的問題? – Anca

回答

8

我不能用WordPress 3.3.1的乾淨安裝來重複你所看到的。我那裏有兩個文件,style.css,包含一個主題:

/* 
Theme Name:  stackoverflow-8946077 
Template:  twentyeleven 
Version:  0.0.1 
*/ 
@import url("../twentyeleven/style.css"); 

coming-soon.php,包含:

<?php 
/* 
    Template Name: Coming Soon 
*/ 

get_header(); 
?><h1>Coming Soon</h1><?php 
get_footer(); 
?> 

的第一部分,其中,從你的問題複製。

我看到預期的模板:

WordPress templates

唯一的東西我能想到的是要仔細檢查:

  • 文件你正在運行的服務器上存在
  • 該文件在子模板的目錄中(儘管它應該在twentyeleven目錄中工作)
  • 有一個與在twentyeleven目錄,它(我認爲)沒有同名的文件將優先
  • 文件名中.php
  • 結束你只有「模板」和「名稱」之間的一個空間(使用正則表達式包含文字Template Name:

如果做不到這一點,則下拉由wp-admin/includes/theme.phpget_page_templates功能填充。可能值得堅持一些調試代碼,看看$templates變量是否包含coming-soon.php

+0

我檢查了你的清單,並且一切都正確完成了,但是在這個過程中,我發現了我的問題的答案,所以我將答案授予你... – emersonthis

+0

事實證明,Wordpress已經決定我的主題被破壞了,但沒有告訴我這件事。當我進入Dashboard> Themes面板時,我看到有關我的主題「缺少樣式表」的錯誤。這很奇怪,因爲我的主題在當時正常運作。解決方案:我一直在使用style.LESS文件(我的開發服務器隨時編譯爲.css)在本地開發網站。我必須將它改成.css格式,然後激活它,並且不知何故,直到現在還是個問題。 – emersonthis

+0

很酷;很高興你找到答案,即使這不是我所建議的。感謝您接受我的回答 - 欣賞它。 – Hobo

1

在我的情況下,它最終成爲文件權限。我將它設置爲755或任何標準的WP許可(關於安全),它的工作!

0

礦還最終成爲文件權限。

我將它設置爲777,它的功能就像一個魅力!

+0

小心777.它可能不會影響你的情況,但你不想這樣做到整個目錄 – emersonthis

+0

謝謝@emersonthis。請牢記這一點。 – triggerhappy17

2

這是一個古老的線程。但是如果有人現在正在尋找解決方案,這可能是WP 4.9中的問題。更多詳細信息:Templates not working properly

+0

感謝您指出這個人!顛覆我的版本 – maioman

相關問題