2011-04-14 116 views
1

我正在拉我的頭髮。我創建了一些簡單的函數,可以從我想在wordpress頁面上使用的數據庫中生成隨機數。 (然後從主題文件中調用它們,例如header.php或page.php。)我的自定義函數在Wordpress中的位置?

我曾嘗試將函數放入主題(根據我已閱讀的文檔)的functions.php中,但我不斷收到「調用未定義的函數」錯誤!我在做什麼錯了?

例子,這裏是functions.php的

function randomPollNumber() { 
///this gets a random active poll number 
    $sql12 = "SELECT id FROM poll WHERE removed = 0 AND active = 1 ORDER BY RAND() LIMIT 1"; 
    $result12 = mysql_query($sql12); 
    $myrow12 = mysql_fetch_row($result12); 
    $pollquestionid = $myrow12[0]; 
    return $pollquestionid; 
} 

裏面的函數,我與這個

<?php echo randomPollNumber(); ?> 

調用它,從header.php文件是的,我也嘗試使用if_function_exists,但它當然不能找到函數,所以它當然不存在。請幫忙?

回答

1

很奇怪 - 一些調試提示:

  1. 認沽模( 'functions.php文件加載')語句在functions.php的(不是函數裏面)的開始。如果它不死,你知道該文件沒有被加載。
  2. 如果它死了,然後檢查你的拼寫(從functions.php複製並粘貼函數名到你的echo [...])。我非常驚訝,我確信我已經拼寫正確,事實上我沒有。
  3. 如果沒有死掉,請檢查您的文件是否被絕對稱爲functions.php,它絕對位於正在編碼的主題的正確主題文件夾內。
  4. 函數.php文件可能存在錯誤,因此不會被解析,因此Wordpress無法找到該函數。檢查您的日誌是否有錯誤。加載函數文件,沒有別的,並檢查功能是否正常。你正在使用PHP單元或類似的東西?
+0

我以爲你救了我Blowski!但是,唉,不。我試過1,它死了。步驟2,他們匹配。是的。功能。 4.我加載了只是function.php和唉,它有我的功能之前的錯誤。 (具有諷刺意味的是,一個函數不存在「add_action('admin_head','kubrick_theme_page_head');」)所以,我把它拿出來......它跑得很完美......很興奮....試過了......和同樣的交易....功能不存在!哎呀。我欣賞這些提示,並會在未來記住它們。哦,我不知道什麼是PHP單元... – NarfFlarf 2011-04-14 19:05:54

+0

@NarfFlarf:我不知道默認情況下Wordpress的error_reporting設置是什麼,但是嘗試在函數的頂部運行'error_reporting(E_ALL | E_STRICT);' .php'文件。如果在該文件中有任何內容不符合,這應該告訴你什麼/在哪裏。 – AgentConundrum 2011-04-14 20:42:40

+0

PHP單元只是讓你自己測試功能,看看他們在工作。 @AgentConundrum的觀點也不錯,不過我會將它添加到根index.php文件並放入ini_set('display_errors','1');在那裏。將它添加到functions.php文件將不會返回錯誤,如果它們發生在該文件加載之前。只要確保在使網站生效之前再次刪除代碼。還有一件事 - 嘗試從functions.php中刪除任何其他代碼。只是有你的功能,沒有別的。 – 2011-04-14 20:46:04