Bagaimana cara menghapus bilah admin (gaya) hanya dari frontend?

10

Saat masuk, bilah admin menambahkan yang berikut ke <head>bagian halaman saya :

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

Sekarang, saya bisa menghapus ini dengan menonaktifkan bar admin

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

atau menghapusnya sepenuhnya

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

Saya ingin menyimpan bar admin di antarmuka admin dan hanya menghapus CSS dari ujung depan.

Saya sudah menggunakan reset CSS di mana saya atur margin: 0px, tetapi styling admin-bar menimpa ini.

Jadi bagaimana saya bisa menghapus styling dari ujung depan?

PS. Saya tahu saya dapat menonaktifkan bilah admin per pengguna, tetapi bukan itu yang saya inginkan.

Steven
sumber

Jawaban:

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

Edit:

Seperti yang disarankan @Walf dalam komentar, ini dapat ditulis sebagai:

add_filter('show_admin_bar', 'is_blog_admin');
Maxim Krizhanovsky
sumber
1
Ah :) Saya sedang menguji admin ketika saya mencoba sesuatu yang serupa. Lupa tentang is_blog_admin. Terima kasih :)
Steven
file mana ini masuk ... Saya cukup baru untuk WP ...
@HiroProtagonist dapat didefinisikan di plugin apa saja atau di functions.php dari tema Anda.
Maxim Krizhanovsky
2
Anda dapat mempersingkat sedikit:add_filter( 'show_admin_bar', function (){ return is_blog_admin() });
MiCc83
1
Anda dapat mempersingkat itu banyak : add_filter('show_admin_bar', 'is_blog_admin');saya menyarankan edit tapi ditolak. Saya kira dua pengulas berdaya tinggi melihatnya sebagai terlalu banyak perubahan tanpa disadari persis sama.
Walf
5

Jika Anda ingin menghapus bilah admin (bilah alat) DAN bump CSS dari halaman Anda, gunakan ini:

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

The _admin_bar_bump_cbFungsi adalah salah satu yang menyisipkan CSS (terletak di wp-includes / admin-bar.php)

Jonaton
sumber
1

Saya akan melakukan sesuatu seperti ini:

Hapus admin bar / CSS di kelas kepala / tubuh

show_admin_bar(false);

atau jika Anda hanya ingin: Hapus htmlmargin-top CSS di<head>

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

Diuji: Versi 4.7.3

l2aelba
sumber
0

Saya baru-baru ini harus melakukan ini, saya hanya ingin gaya css inline default wordpress (untuk bar admin) dihapus, tapi saya ingin admin bar tetap. Saya sedang menampilkan bar admin di bagian bawah halaman, bukan bagian atas.

Inilah yang menyingkirkan menyuntikkan gaya dari fungsi _admin_bar_bump_cb untuk saya. Saya menambahkan yang berikut ini ke functions.php saya

// 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
sumber