2012-01-29 15 views
8

私はwordpress管理パネル上のいくつかのトップレベルメニューを削除しようとしています。奇妙なことに、関数が宣言されているplugin.phpファイルから、次のようなエラーメッセージが表示されます。 "C:\ wamp \ www \ wordpress-alp \ wp-admin \ includes \ plugin.php on line 1261 "。 私は、ファイルに行って、次のコードが見つかりました:私がplugin.phpで次の機能であるremove_ サブメニュー _pageを()、使用するとき、私はそのようなを取得していないことに注意することが重要であるwordpress関数remove_menu_page()がエラーをスローする

function remove_menu_page($menu_slug) { 
    global $menu; 

    foreach ($menu as $i => $item) { // **this is line 1261** 
     if ($menu_slug == $item[2]) { 
      unset($menu[$i]); 
      return $item; 
     } 
    } 

    return false; 
} 

をエラー。 のfunctions.phpに位置して私の機能、:あなたが$menumf_remove_menu_pages()を呼んでいる

add_action('admin_init', 'mf_remove_menu_pages'); 
function mf_remove_menu_pages() { 
    remove_menu_page('link-manager.php'); 
    remove_menu_page('index.php'); 
    remove_menu_page('users.php'); 
    remove_menu_page('upload.php'); 
    remove_menu_page('tools.php'); 
    remove_menu_page('edit.php'); 
    remove_menu_page('edit-comments.php'); 
    remove_menu_page('post-new.php'); 
    remove_submenu_page('themes.php','themes.php'); 
    remove_submenu_page('themes.php','theme-editor.php'); 
    remove_submenu_page('themes.php','widgets.php'); 
}; 
+0

最後に '.php'が必要ですか? –

答えて

17

は、実際に設定されている、または$menuが設定されることはありませんときには、例に思えます。実際にremove_menu_page()を呼び出すには、admin_menuフックを待つ必要があります。 admin_initで作業している場合は、間違ったフックを使用しているため、AJAXリクエストでボーク処理が行われます。

フックを変更する必要があります。これを試してください:

add_action('admin_menu', 'mf_remove_menu_pages'); 
function mf_remove_menu_pages() { 
    remove_menu_page('link-manager.php'); 
    remove_menu_page('index.php'); 
    remove_menu_page('users.php'); 
    remove_menu_page('upload.php'); 
    remove_menu_page('tools.php'); 
    remove_menu_page('edit.php'); 
    remove_menu_page('edit-comments.php'); 
    remove_menu_page('post-new.php'); 
    remove_submenu_page('themes.php','themes.php'); 
    remove_submenu_page('themes.php','theme-editor.php'); 
    remove_submenu_page('themes.php','widgets.php'); 
} 

・ホープ、このことができます:)

ワードプレスの新しいバージョンで
+0

はい、それは働いた! thx :) – Matanya

+0

Thx u非常に、私にあまりにも多くの時間を節約 –

+0

あなたは天才です、それは魅力のように働いた: –

0

を、theme-editor.php(またはJetpackのプラグインによって導入されたサブページ)のようないくつかのサブページを削除するには、あなたがadmin_menuフックにバインドする必要があり非常に高い優先度を持っています。

など。 theme-editor.phpを削除するには、優先度を約120に設定する必要があります。 Jetpackのページでは、2000が必要です。

add_action('admin_menu', 'mf_remove_menu_pages', 120); 
function mf_remove_menu_pages() { 
    remove_menu_page('link-manager.php'); 
    remove_menu_page('index.php'); 
    remove_menu_page('users.php'); 
    remove_menu_page('upload.php'); 
    remove_menu_page('tools.php'); 
    remove_menu_page('edit.php'); 
    remove_menu_page('edit-comments.php'); 
    remove_menu_page('post-new.php'); 
    remove_submenu_page('themes.php','themes.php'); 
    remove_submenu_page('themes.php','theme-editor.php'); 
    remove_submenu_page('themes.php','widgets.php'); 
} 

これもWordpress Codexにし、Wordpress Support Forumsに記載されています。

関連する問題