2010-09-09 16 views
1

好吧,這是一個biggie。這裏的交易:WordPress register_nav_menu突然停止在本地工作

我有超過50的安裝在MAMP Pro本地運行的WordPress的安裝。對於其中一些我使用本地/任何,對於其他我設置虛擬主機爲whatever.local /。 WordPress從來沒有任何問題。昨天,安裝了WP 3.0.1(新鮮的,直接關閉服務器)的副本,並開始模板化。今天,我回到它繼續,首先登記默認導航。我在functions.php中添加了必要的行:

add_theme_support('menus'); 

add_action('init', 'register_custom_menu'); 

    function register_custom_menus() { 
     register_nav_menu('primary_menu', __('Header Menu')); 
     register_nav_menu('404_menu', __('404 Menu')); 
    } 

好吧?我也嘗試了register_custom_menu,一次一個。在WordPress中,不會顯示默認菜單。我已經試過:

  • 激活不同的主題,重新激活原始
  • 嘗試二十年 - 仍然沒有自定義導航雖然「主菜單」中的代碼註冊,所以這不是我的功能.PHP
  • 試過了,我已經在本地運行(在它原來的地方完美的作品)的另一個主題,仍然沒有資產淨值
  • 刪除整個數據庫,並重新安裝WP
  • 刪除整個目錄,重新下載WP ,重新安裝
  • 刪除從本地主機/虛擬主機和工作無論

所以,我正與導航登記完全沒有一噸的其他WP網站,但我不能創造任何更多?我完全失去了。

任何輸入,將不勝感激,現在我在我的智慧結束。讓我知道你是否需要更多信息。

回答

2

三件事:

  1. 你應該掛鉤菜單註冊到'after_setup_theme',不'init'
  2. 你不需要調用add_theme_support()因爲register_nav_menu()需要的照顧。
  3. 您可以使用register_nav_menus()同時處理所有菜單。

但是,這是不工作的最大原因是因爲你沒有調用你的函數。 add_action的回調應爲'register_custom_menus'(注意複數形式)。拼寫必須與函數聲明相匹配。這是我建議你改寫它的方式:

add_action('after_setup_theme', 'register_custom_menus'); 

function register_custom_menus() { 
    register_nav_menus(array(
     'primary_menu' => __('Header Menu'), 
     '404_menu' => __('404 Menu'))); 
}