Jak usunąć pasek administratora (stylizacja) tylko z interfejsu?

10

Po zalogowaniu pasek administratora dodaje następujące <head>sekcje do mojej strony :

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

Teraz mogę to usunąć, wyłączając pasek administratora

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

lub całkowicie go usuwając

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

Chciałbym zachować pasek administratora w interfejsie administratora i usuwać tylko CSS z interfejsu użytkownika.

Korzystam już z resetowania CSS tam, gdzie ustawiłem margin: 0px, ale styl paska administracyjnego zastępuje to.

Jak mogę usunąć stylizację z przodu?

PS. Wiem, że mogę wyłączyć pasek administratora dla każdego użytkownika, ale nie tego chcę.

Steven
źródło

Odpowiedzi:

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

Edytować:

Jak sugerował @Walf w komentarzach, można to zapisać jako:

add_filter('show_admin_bar', 'is_blog_admin');
Maxim Krizhanovsky
źródło
1
Ach :) Testowałem dla administratora, kiedy próbowałem czegoś podobnego. Zapomniałem o is_blog_admin. Dzięki :)
Steven
który plik to wchodzi ... Jestem całkiem nowy w WP ...
@HiroProtagonist może być zdefiniowany w dowolnej wtyczce lub w functions.php twojego motywu.
Maxim Krizhanovsky
2
Możesz go trochę skrócić:add_filter( 'show_admin_bar', function (){ return is_blog_admin() });
MiCc83
1
Możesz go znacznie skrócić : add_filter('show_admin_bar', 'is_blog_admin');zasugerowałem edycję, ale została odrzucona. Sądzę, że dwóch wysoko ocenionych recenzentów uznało to za zbyt dużą zmianę, nie zdając sobie sprawy, że jest dokładnie taka sama.
Walf
5

jeśli chcesz usunąć pasek administratora (pasek narzędzi) ORAZ wypukły CSS ze swojej strony, użyj tego:

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

Ta _admin_bar_bump_cbfunkcja wstawia CSS (znajduje się w wp-obejmuje / admin-bar.php)

Jjeaton
źródło
1

Zrobiłbym coś takiego:

Usuń pasek administratora / CSS w klasie głowy / ciała

show_admin_bar(false);

lub jeśli po prostu chcesz: Usunąć htmlCSS z marginesami<head>

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

Testowane: wersja 4.7.3

L2aelba
źródło
0

Ostatnio musiałem to zrobić, chciałem po prostu usunąć domyślne wbudowane style css WordPressa (dla paska administratora), ale chciałem, aby pasek administratora pozostał. Wyświetlałem pasek administratora na dole strony, a nie na górze.

Oto, co pozbyło się dla mnie wstrzykiwania stylów z funkcji _admin_bar_bump_cb. Dodałem następujące do mojego 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
źródło