Cum să elimin bara de administrare (stilizarea) doar din frontend?
Când sunt autentificat, bara de administrare adaugă următorul cod în secțiunea <head>
a paginii mele:
<style media="screen" type="text/css">
html { margin-top: 28px !important; }
* html body { margin-top: 28px !important; }
</style>
Pot elimina acest lucru dezactivând bara de administrare
/* Dezactivează Bara de Administrare */
add_filter( 'show_admin_bar', '__return_false' );
sau eliminând-o complet
/* Elimină bara de administrare */
remove_action('init', 'wp_admin_bar_init');
Aș dori să păstrez bara de administrare în interfața de admin și să elimin doar CSS-ul din frontend.
Folosesc deja CSS reset unde setez margin: 0px
, dar stilizarea barei de administrare suprascrie această setare.
Deci cum pot elimina stilizarea din frontend?
PS. Știu că pot dezactiva bara de administrare per utilizator, dar nu asta îmi doresc.

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' );
Edit:
După cum a sugerat @Walf în comentarii, acest cod poate fi scris și astfel:
add_filter('show_admin_bar', 'is_blog_admin');

Ah :) Testam pentru admin când am încercat ceva similar. Am uitat de is_blog_admin
. Mersi :)

@HiroProtagonist poate fi definit în orice plugin sau în functions.php al temei tale.

Aceasta nu elimină CSS-ul margin-top: 28px !important
din front-end totuși?

Poți să-l scurtezi puțin: add_filter( 'show_admin_bar', function (){
return is_blog_admin()
});

Poți să o scurtezi mult: add_filter('show_admin_bar', 'is_blog_admin');
Am sugerat editarea dar a fost respinsă. Cred că cei doi evaluatori experimentați au văzut-o ca o schimbare prea mare fără să realizeze că este exact același lucru.

Dacă dorești să elimini bara de administrare (toolbar) ȘI CSS-ul adăugat de pe pagina ta, folosește acest cod:
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' );
Funcția _admin_bar_bump_cb
este cea care inserează CSS-ul (se află în wp-includes/admin-bar.php)

Aș face ceva de genul:
Elimină bara de administrare / CSS în head / clasa body
show_admin_bar(false);
sau dacă dorești doar să: Elimini margin-top CSS din html
în <head>
function remove_admin_bar_bump() {
remove_action('wp_head', '_admin_bar_bump_cb');
}
add_action('get_header', 'remove_admin_bar_bump');
Testat pe: Versiunea 4.7.3

Recent am avut nevoie să fac acest lucru, voiam doar să elimin stilurile CSS implicite inline ale WordPress (pentru bara de administrare), dar totuși să păstrez bara de administrare. Afișam bara de administrare în partea de jos a paginii, nu în partea de sus.
Iată ce a eliminat injectarea stilurilor din funcția _admin_bar_bump_cb pentru mine. Am adăugat următoarele în fișierul meu functions.php
// elimină încercarea WordPress de a formata bara de administrare cu CSS inline
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' );
