Як я можу видалити панель адміністрування (стиль) лише з фронтену?


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 його можна визначити в будь-якому плагіні або у function.php вашої теми.
Максим Крижановський

2
Ви можете трохи скоротити його:add_filter( 'show_admin_bar', function (){ return is_blog_admin() });
MiCc83

1
Ви можете її скоротити дуже багато : add_filter('show_admin_bar', 'is_blog_admin');я запропонував редагувати, але він був відхилений. Я здогадуюсь, що двоє потужних рецензентів сприйняли це як занадто багато змін, не усвідомлюючи, що це абсолютно те саме.
Уолф

5

Якщо ви хочете видалити панель адміністрування (панель інструментів) І збій 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-включає / адміністратор-bar.php)


1

Я б зробив щось подібне:

Видаліть панель адміністрування / CSS у класі голови / тіла

show_admin_bar(false);

або якщо ви просто хочете: Видалити htmlCSS у верхній частині поля<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 для мене. Я додав наступне до своїх функцій.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' );
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.