Quitar Personalizar el fondo y el encabezado del menú de administración de Apariencia sin CSS o JS

2

Estoy intentando eliminar el fondo y el encabezado del menú de apariencia, ¡pero parece que no desaparecen! Creo que es porque he activado personalizar, pero ¿puedo eliminarlos de todas formas sin usar CSS o JS?

Aquí está mi código:

add_action('admin_menu', 'remove_unnecessary_wordpress_menus', 999);

function remove_unnecessary_wordpress_menus(){
    remove_menu_page('themes.php?page=custom-background');
    remove_submenu_page('themes.php', 'custom-background');
    remove_submenu_page('themes.php', 'custom-header');
}

Gracias de antemano!

    
pregunta Fredrik 02.06.2015 - 10:45

4 respuestas

4

Por muy complicado que parezca, siempre encuentro que la mejor manera de manejar las modificaciones del menú de administración es pasar por alto las funciones de wordpress remove_ e ir directamente a los globos globales $menu y $submenu . En el caso de que haya especificado aquí, le gustaría cambiar su código a:

add_action('admin_menu', 'remove_unnecessary_wordpress_menus', 999);

function remove_unnecessary_wordpress_menus(){
    global $submenu;
    unset($submenu['themes.php'][20]);
    unset($submenu['themes.php'][22]);
}

Los índices de las páginas en la matriz themes.php parecen extraños, ¡¿pero qué no, cuando intentas hackear WP ?! Puede encontrar una buena referencia para usar estos globales aquí .

EDITAR: Solo un pensamiento, dadas las cantidades variables de complementos, etc. que podrían (potencialmente, pero no definitivamente) cambiar el índice de un elemento de menú / submenú dado en la matriz, sería una buena idea verificar el números requeridos si el fragmento que he proporcionado no funciona. Puedes hacerlo modificando el código ligeramente a esto:

add_action('admin_menu', 'remove_unnecessary_wordpress_menus', 999);

function remove_unnecessary_wordpress_menus(){
    global $submenu;
    //Left margin is to account for the admin sidebar menu
    echo '<pre style="margin-left:11em">';
    print_r($submenu);
    echo '</pre>';
}

Esto imprimirá "bastante" la matriz $submenu , desde la cual puede encontrar los números exactos que necesita.

EDITAR: Como todavía no tengo el representante para comentar sobre esta comunidad, vale la pena señalar que @Fredrik hizo un buen trabajo de generalización. +1.

    
respondido por el James Cushing 02.06.2015 - 11:21
6

Aquí está mi final del código. ¡Gracias por la rápida respuesta!

add_action('admin_menu', 'remove_unnecessary_wordpress_menus', 999);

function remove_unnecessary_wordpress_menus(){
    global $submenu;
    foreach($submenu['themes.php'] as $menu_index => $theme_menu){
        if($theme_menu[0] == 'Header' || $theme_menu[0] == 'Background')
        unset($submenu['themes.php'][$menu_index]);
    }
}
    
respondido por el Fredrik 02.06.2015 - 12:36
1

Aquí hay otra opción para eliminar el encabezado y fondo ( fuente ):

//Remove the custom options provided by the default twentyeleven theme.     
add_action( 'after_setup_theme','remove_twentyeleven_options', 100 );
function remove_twentyeleven_options() {    
    remove_custom_background();
    remove_custom_image_header();
    remove_action('admin_menu', 'twentyeleven_theme_options_add_page');    
}
    
respondido por el Paal Joachim Romdahl 24.06.2015 - 23:58
0

Gracias a todos! Aquí está el código dentro de WordPress 4.9.8.

function remove_header_and_bg(){
  global $submenu;
  unset($submenu['themes.php'][6]); // customize
  unset($submenu['themes.php'][15]); // header_image
  unset($submenu['themes.php'][20]); // background_image
}
add_action( 'admin_menu', 'remove_header_and_bg', 999 );
    
respondido por el Yutaro Ikeda 27.09.2018 - 05:19

Lea otras preguntas en las etiquetas