ฉันจะลบแถบผู้ดูแลระบบ (การใส่สไตล์) ออกจากส่วนหน้าเท่านั้นได้อย่างไร


10

เมื่อลงชื่อเข้าใช้แถบผู้ดูแลระบบจะเพิ่มสิ่งต่อไปนี้ใน<head>ส่วนหน้าของฉัน:

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

ตอนนี้ฉันสามารถลบได้โดยปิดการใช้งานแถบผู้ดูแลระบบ

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

หรือลบออกอย่างสมบูรณ์

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

ฉันต้องการเก็บแถบผู้ดูแลระบบไว้ในส่วนต่อประสานผู้ดูแลระบบและลบ CSS ออกจากส่วนหน้าเท่านั้น

ฉันได้ใช้การรีเซ็ต CSS ที่ฉันตั้งค่าไว้margin: 0pxแล้ว แต่สไตล์ผู้ดูแลระบบบาร์จะแทนที่สิ่งนี้

ดังนั้นฉันจะลบสไตล์ออกจากส่วนหน้าได้อย่างไร

PS ฉันรู้ว่าฉันสามารถปิดการใช้งานแถบผู้ดูแลระบบต่อผู้ใช้ แต่นั่นไม่ใช่สิ่งที่ฉันต้องการ

คำตอบ:


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

แก้ไข:

ตามที่ @Walf แนะนำในความคิดเห็นสิ่งนี้สามารถเขียนได้ดังนี้:

add_filter('show_admin_bar', 'is_blog_admin');

1
อา :) ฉันทดสอบผู้ดูแลระบบเมื่อฉันลองทำสิ่งที่คล้ายกัน is_blog_adminลืมเกี่ยวกับ ขอบคุณ :)
สตีเวน

ไฟล์นี้เข้าที่ ... ฉันค่อนข้างใหม่กับ WP ...

@HiroProtagonist สามารถกำหนดได้ในปลั๊กอินใด ๆ หรือใน functions.php ของธีมของคุณ
Maxim Krizhanovsky

2
คุณสามารถย่อให้สั้นลงได้เล็กน้อย:add_filter( 'show_admin_bar', function (){ return is_blog_admin() });
MiCc83

1
คุณสามารถย่อให้สั้นลงได้มาก : add_filter('show_admin_bar', 'is_blog_admin');ฉันแนะนำการแก้ไข แต่ถูกปฏิเสธ ฉันเดาว่าผู้ตรวจสอบที่มีพลังสูงสองคนเห็นว่ามันเป็นการเปลี่ยนแปลงที่มากเกินไปโดยไม่ทราบว่ามันเหมือนกันทุกประการ
Walf

5

ถ้าคุณต้องการลบแถบผู้ดูแลระบบ (แถบเครื่องมือ) และ bump CSS จากหน้าของคุณให้ใช้สิ่งนี้:

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

_admin_bar_bump_cbฟังก์ชั่นเป็นหนึ่งที่แทรก CSS (อยู่ใน WP-includes / ผู้ดูแลระบบ bar.php)


1

ฉันจะทำสิ่งนี้:

ลบ admin bar / CSS ในคลาส head / body

show_admin_bar(false);

หรือถ้าคุณเพียงต้องการ: ลบhtmlCSS-margin<head>

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

ทดสอบแล้ว:เวอร์ชัน 4.7.3


0

เมื่อเร็ว ๆ นี้ฉันต้องทำสิ่งนี้ฉันแค่ต้องการให้ลบสไตล์อินไลน์ css (สำหรับแถบผู้ดูแลระบบ) ของ wordpress แต่ฉันไม่ต้องการให้แถบผู้ดูแลระบบยังคงอยู่ ฉันแสดงแถบผู้ดูแลระบบที่ด้านล่างของหน้าไม่ใช่ด้านบน

นี่คือสิ่งที่กำจัดการแทรกสไตล์จากฟังก์ชัน _admin_bar_bump_cb สำหรับฉัน ฉันได้เพิ่มสิ่งต่อไปนี้ใน

// 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' );
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.