2013-05-28 70 views
0

這個問題讓我瘋狂。WordPress的:functions.php打破標準WP功能

今天早上,我創建的Wordpress主題包含一個非常簡單的functions.php文件,我的網站正常工作。今天,我寫了一個新函數來遍歷類別並列出特定的帖子,這是我對函數.php唯一的改變。

將修改後的函數文件上傳到服務器後,每次訪問我的網站時都會收到500錯誤。我雖然,「好的,我的新功能打破了一些東西,我只是將它從functions.php中移除並重新開始。」但是,在恢復到該文件的原始版本(今天早上的版本)後,我仍然收到500錯誤。

如果我從服務器中刪除functions.php,我的頁面加載(顯然沒有它們的邊欄,但它們加載)。只要我再次上傳文件(與今天上午工作的版本相同),就會出現500錯誤。

我檢查了錯誤日誌,我發現,當我在服務器上有functions.php時,Wordpress(或更可能是php)不能再找到get_template_directory_uri()函數。我沒有做任何改變任何標準的Wordpress功能,而這隻發生在我已經上傳了functions.php時。

什麼可能導致functions.php打破標準功能?

這是我的functions.php文件:

<?php 

/* ********************************************* 
* Create left-hand sidebar for single.php 
* 
* TODO: Finalize $sricks_single_left_sidebar. 
* ********************************************/ 
$sricks_single_left_sidebar = array(
    'name'   => 'Left Sidebar', 
    'id'   => 'lt-single', 
    'description' => 'This is the sidebar on the left side of the single.php template page.', 
    'before_widget' => '<!-- Left-Single Sidebar --><div class="lt-single">', 
    'after_widget' => '</div> <!-- End Left-Single Sidebar -->', 
    'before_title' => '<h1>', 
    'after_title' => '</h1>', 
); 
register_sidebar($sricks_single_left_sidebar); 

/* ********************************************* 
* Create header_search sidebar to be used on 
* all pages 
* ********************************************/ 
$sricks_header_search_sidebar = array(
    'name'   => 'Header Search', 
    'id'   => 'header-search', 
    'description' => 'This is the search box in the page header.', 
    'before_widget' => '<!-- Header-Search Sidebar --><div class="header-search">', 
    'after_widget' => '</div> <!-- End Header-Search Sidebar -->', 
    'before_title' => '<h1>', 
    'after_title' => '</h1>', 
); 
register_sidebar($sricks_header_search_sidebar); 
?> 
+0

你的'functions.php'文件沒有什麼錯。它必須是別的東西。開啓調試並告訴我輸出的是什麼。編輯'wp-config.php'並把它放在裏面:'define('WP_DEBUG',true);' –

+0

謝謝,Spencer Cameron。啓用調試後,我發現問題的原因。由於我是新手,我無法回答自己的問題7個小時,但當時我會更新答案。 – sricks3

+0

我很高興幫助。我會給出一個關於'WP_DEBUG'的答案,因爲這說明了你的問題的原因。 –

回答

1

謝謝大家,尤其是斯賓塞卡梅隆。原來,我忘記了新功能聲明中的開放和關閉括號。 WordPress的任何內置函數之前讀取functions.php,所以它只是卡在那裏。

當我提交我的代碼時,我遺漏了我的新函數,因爲我已經刪除了函數體中的所有內容;會出現什麼問題?經驗教訓...

2

要查找問題的原因在WordPress的當你500級的錯誤,一個空白屏幕,或任何其他異常或意外行爲,定義WP_DEBUG常數wp-config.php

像這樣:

define('WP_DEBUG', true);

如果你正在開發或更改網站,它通常是一個好主意,啓用此功能,直到你完成編輯。它可以很容易地發現並糾正錯誤,否則這些錯誤可能會持續數小時。