Como removo a barra de administração (estilo) apenas do front-end?

10

Quando logado, a barra de administrador adiciona o seguinte à <head>seção minha página :

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

Agora, posso remover isso desativando a barra de administrador

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

ou removê-lo completamente

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

Gostaria de manter a barra de administrador na interface do administrador e remover apenas o CSS do front end.

Eu já uso a redefinição de CSS onde defini margin: 0px, mas o estilo da barra de administração substitui isso.

Então, como posso remover o estilo do front end?

PS. Eu sei que posso desativar a barra de administrador por usuário, mas não é isso que eu quero.

Steven
fonte

Respostas:

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 o @Walf sugeriu nos comentários, isso pode ser escrito como:

add_filter('show_admin_bar', 'is_blog_admin');
Maxim Krizhanovsky
fonte
11
Ah :) Eu estava testando o admin quando tentei algo semelhante. Esqueceu sobre o is_blog_admin. Obrigado :)
Steven
qual arquivo faz isso ir em ... Eu sou muito novo para WP ...
O @HiroProtagonist pode ser definido em qualquer plugin ou no functions.php do seu tema.
Maxim Krizhanovsky
2
Você pode abreviá-lo um pouco:add_filter( 'show_admin_bar', function (){ return is_blog_admin() });
MiCc83 26/04
11
Você pode reduzi-lo bastante : add_filter('show_admin_bar', 'is_blog_admin');sugeri a edição, mas ela foi rejeitada. Eu acho que os dois revisores de alta potência viram muita mudança sem perceber que é exatamente a mesma coisa.
Walf
5

Se você deseja remover a barra de administrador (barra de ferramentas) E o CSS de colisão da sua página, use o seguinte:

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

A _admin_bar_bump_cbfunção é a que insere o CSS (localizado em wp-includes / admin-bar.php)

jjeaton
fonte
1

Eu faria algo assim:

Remover barra de administração / CSS na classe head / body

show_admin_bar(false);

ou se você quiser: Remover htmlCSS de margem superior em<head>

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

Testado: Versão 4.7.3

l2aelba
fonte
0

Recentemente eu tive que fazer isso, eu só queria que os estilos CSS embutidos do wordpress fossem removidos, mas eu queria que a barra permanecesse. Eu estava exibindo a barra de administrador na parte inferior da página, não na parte superior.

Aqui está o que se livrou de injetar os estilos da função _admin_bar_bump_cb para mim. Eu adicionei o seguinte ao meu 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
fonte