¿Cómo elimino la barra de administración (estilo) solo de la interfaz?

10

Al iniciar sesión, la barra de administración agrega lo siguiente a la <head>sección de mi página :

<style media="screen" type="text/css">
    html { margin-top: 28px !important; }
    * html body { margin-top: 28px !important; }
</style>

Ahora, puedo eliminar esto deshabilitando la barra de administración

/* Disable the Admin Bar. */
add_filter( 'show_admin_bar', '__return_false' );

o quitándolo completamente

/* Remove admin bar */
remove_action('init', 'wp_admin_bar_init');

Me gustaría mantener la barra de administración en la interfaz de administración y solo eliminar el CSS del front-end.

Ya uso el restablecimiento de CSS donde configuré margin: 0px, pero el estilo de la barra de administración anula esto.

Entonces, ¿cómo puedo eliminar el estilo de la parte frontal?

PD. Sé que puedo desactivar la barra de administración por usuario, pero eso no es lo que quiero.

Steven
fuente

Respuestas:

21
function hide_admin_bar_from_front_end(){
  if (is_blog_admin()) {
    return true;
  }
  return false;
}
add_filter( 'show_admin_bar', 'hide_admin_bar_from_front_end' );

Editar:

Como @Walf sugirió en los comentarios, esto podría escribirse como:

add_filter('show_admin_bar', 'is_blog_admin');
Maxim Krizhanovsky
fuente
1
Ah :) Estaba probando para administrador cuando intenté algo similar. Olvidé el is_blog_admin. Gracias :)
Steven
en qué archivo va esto ... Soy bastante nuevo en WP ...
@HiroProtagonist se puede definir en cualquier complemento o en functions.php de tu tema.
Maxim Krizhanovsky
2
Puede acortarlo un poco:add_filter( 'show_admin_bar', function (){ return is_blog_admin() });
MiCc83
1
Puedes acortarlo mucho : add_filter('show_admin_bar', 'is_blog_admin');sugerí la edición pero fue rechazada. Supongo que los dos críticos de alto poder lo vieron como demasiado cambio sin darse cuenta de que es exactamente lo mismo.
Walf
5

Si desea eliminar la barra de administración (barra de herramientas) Y el CSS de su página, use esto:

function wpse_99333_hide_admin_bar_from_front_end(){
  if ( is_blog_admin() ) {
    return true;
  }
  remove_action( 'wp_head', '_admin_bar_bump_cb' );
  return false;
}
add_filter( 'show_admin_bar', 'wpse_99333_hide_admin_bar_from_front_end' );

La _admin_bar_bump_cbfunción es la que inserta el CSS (ubicado en wp-includes / admin-bar.php)

jjeaton
fuente
1

Haría algo como esto:

Eliminar la barra de administración / CSS en la clase head / body

show_admin_bar(false);

o si solo desea: Eliminar htmlCSS de margen superior en<head>

function remove_admin_bar_bump() {
   remove_action('wp_head', '_admin_bar_bump_cb');
}
add_action('get_header', 'remove_admin_bar_bump');

Probado: Versión 4.7.3

l2aelba
fuente
0

Recientemente tuve que hacer esto, solo quería que se quitaran los estilos CSS en línea predeterminados de Wordpress (para la barra de administración), pero quería que la barra de administración permaneciera. Estaba mostrando la barra de administración en la parte inferior de la página, no en la parte superior.

Esto es lo que eliminó de inyectar los estilos de la función _admin_bar_bump_cb para mí. Agregué lo siguiente a mis functions.php

// remove wordpress trying to style the admin bar with inline css
function hide_admin_bar_from_front_end(){
  remove_action( 'wp_head', '_admin_bar_bump_cb' );
  return true;
}
add_filter( 'show_admin_bar', 'hide_admin_bar_from_front_end' );
andxyz
fuente