2012-01-29 26 views
8

WordPress yönetici panelindeki birkaç üst düzey menüyü kaldırmaya çalışıyorum. Tuhaf bir şekilde, işlevin bildirildiği plugin.php dosyasından bir hata iletisi alıyorum, diyor: "C: \ wamp \ www \ wordpress-alut \ wp-admin \ includes içinde foreach() için geçersiz değişken sağlandı 1261 numaralı hat üzerinde plugin.php ". Ben dosyaya gidip aşağıdaki kodu bulundu: Ben remove_ alt menüsü plugin.php sonraki işlevdir _page() kullandığınızda, ben böyle olsun dikkat etmek önemlidirwordpress işlevi remove_menu_page() bir hata atar

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; 
} 

hata. functions.php bulunan benim işlevi: Sen $menu önce mf_remove_menu_pages() aradığınız

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

Sonunda '.php''ye ihtiyaçları var mı? –

cevap

17

aslında kurulduğundan veya $menu kurmak asla zaman durumlarda görünüyor. Aslında remove_menu_page()'u aramak için admin_menu kancasını beklemeniz gerekir. admin_init üzerinde yapıyorsanız, yanlış kanca kullanıyorsunuz demektir ve bu nedenle AJAX istekleri

'da dolanmakta ve bu nedenle kancanızı değiştirmeniz gerekir. Bununla deneyin:

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'); 
} 

Umut bu, WordPress'in yeni sürümlerinde

+0

evet, işe yaradı! thx :) – Matanya

+0

Çok fazla, beni çok fazla zaman kurtardı –

+0

@sabari sen dehşet, cazibe gibi çalıştı: –

0

:) yardımcı theme-editor.php gibi bazı alt sayfaları kaldırmak için (ya da alt sayfalar Jetpack eklentisi tarafından tanıtılan) Eğer admin_menu kancasına bağlamak zorunda çok yüksek önceliğe sahip.

E.g. theme-editor.php kaldırmak için yaklaşık 120 bir öncelik ayarlamanız gerekir. Jetpack sayfaları için, 2000 civarında bir yere ihtiyacınız vardır.

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'); 
} 

Bu

da Wordpress Codex ve Wordpress Support Forums de belirtilmektedir.

İlgili konular