Если в консоли WordPress не нужны какие-либо блоки (виджеты), то обычно они отключаются в "Настройках экрана" - всплывающее окошко, которое позволяет галочками выбрать нужные нам блоки.
Однако у такого способа отключения виджетов есть как минимум 2 недостатка:
- Выключение галочками, лишь скрывает блоки (средствами CSS), а не удаляет их из кода.
- Если мы делаем сайт на заказ, то некоторые блоки лучше вообще скрыть, чтобы не было ни блоков, ни галочек в "Настройках экрана".
Чтобы избежать этих недостатков, виджеты можно убрать на программном уровне, использовав такой код в файле темы functions.php:
/* Удаление виджетов из Консоли WordPress */
function clear_dash(){
$dash_side = &$GLOBALS['wp_meta_boxes']['dashboard']['side']['core'];
$dash_normal = &$GLOBALS['wp_meta_boxes']['dashboard']['normal']['core'];
unset($dash_side['dashboard_quick_press']); //Быстрая публикация
// unset($dash_side['dashboard_recent_drafts']); //Полседние черновики
unset($dash_side['dashboard_primary']); //Блог WordPress
unset($dash_side['dashboard_secondary']); //Другие Нновости WordPress
unset($dash_normal['dashboard_incoming_links']); //Входящие ссылки
// unset($dash_normal['dashboard_right_now']); //Прямо сейчас
unset($dash_normal['dashboard_recent_comments']); //Последние комментарии
unset($dash_normal['dashboard_plugins']); //Последние Плагины
}
add_action('wp_dashboard_setup', 'clear_dash' );
В коде я подписал какая строка за какой виджет отвечает. Здесь я специально показал все стандартные блоки Консоли WordPress, в действительности в коде нужно оставить только те строки которые отвечают за виджеты, которые нужно удалить (пардон за тавтологию). Я в коде их не удалил, а закомментировал, т.е, если данный код поместить в файл темы functions.php, то в Консоли WordPress останется всего 2 виджета: Полседние черновики и Прямо сейчас.
Помимо удаления виджетов, можно также создавать свои. Кому интересно можете попробовать разобраться как это делается, в кодексе WordPress все описано довольно подробно (правда на английском). Если разобраться не получится, обращайтесь, помогу чем смогу.
- Предыдущие по меткам
- Предыдущие записи
- Плагин для легкого управления сайтом на WordPress (версия 3) ← 30.Июл.2010 // 76
- Плагин для легкого управления сайтом на WordPress ← 23.Апр.2010 // 37
- Код на страницах вашего сайта. Как я решил эту проблему ← 26.Мар.2010 // 31
- Функция вывода постов по количеству комментариев (самый комментируемые записи в WordPress) ← 25 Ноябрь 2010 // 23
- Оптимизация производительности WordPress за счет постоянных ссылок (теория) ← 24 Октябрь 2010 // 7
- Плагин для создания картинок-миниатюр записи (для WordPress) ← 17 Октябрь 2010 // 221


Хм, вы так и не написали где находится этот файл functions.php
Файл находится в папке с шаблоном: это почитайте.
Спасибо, нужная информация, мне в свое время ваша статья сэкономила бы время, но пришлось доходить самому...
спасибо! нашла на вашем сайте много полезного, а эта тема особенно актуальна
хочется заказчика от лишней головной боли уберечь ))))
ну и себя тоже ))))
Пожалуйста, я же только рад за вас
Решение рабочее, а если не касаясь глобальной переменной, используя функцию remove_meta_box() для управления виджетами, может ошибаюсь, но выглядит проще:
add_action('admin_init', 'rw_remove_dashboard_widgets'); function rw_remove_dashboard_widgets() { remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); // прямо сейчас remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal'); // последние комментарии remove_meta_box('dashboard_incoming_links', 'dashboard', 'normal'); // входящие ссылки remove_meta_box('dashboard_plugins', 'dashboard', 'normal'); // плагины remove_meta_box('dashboard_quick_press', 'dashboard', 'normal'); // быстрая публикация remove_meta_box('dashboard_recent_drafts', 'dashboard', 'normal'); // последние черновики remove_meta_box('dashboard_primary', 'dashboard', 'normal'); // блог wordpress remove_meta_box('dashboard_secondary', 'dashboard', 'normal'); // другие новости wordpress }...как выглядит конечно не важно, главное работает, хотелось бы знать не ошибаюсь ли я в своих выводах. Спасибо.
Как выразился один из комментаторов, - "те же яйца, только с боку"...
Через глобальную переменную удалить, кажется более эстетично на вид
Блог то называется "Альтернативный взгляд на WordPress" ...
Наверно в точку, улыбнуло
Эстетичней - это да.
Удачи!
Вот, я же только сегодня написал: remove_meta_box().
Все, картина для меня, теперь более чем полная, отличная получилась шпаргалка.
А можно ли это как-то глобально использовать, а не с определённой темой, тема всётаки на админку не распространяется?
Нашёл! Нужно в wp-admin/includes/dashboard.php закомментить лишние пункты. Мне кажется этот способ лучше, универсальнее.
Может в каком-то смысле и лучше, но уж точно не универсальнее
Он будет работать до первого обновления WordPress, а потом все слетит и придется процедуру проделывать заново.
Можно в плагин оформить, правда стоит ли?
Да, было бы не плохо. Хотя у меня после обновления с 3.2 на 3.2.1 ничего не слетело.
И если делать сайт на заказ, то обновления можно вообще не делать, а вот тему они таким образом смогут поменять.
Эх, мне бы не столько убрать виджеты, сколько научить их понимать программный код, чтобы можно было юзать твои функции в полную силу.
А то я сейчас пилю очередной шаблон, так он даже плагин PHP Widgets не понимает: стоит запихнуть в футер или сайдбар ПХП-виджет с кодом для твоих функций, как сайдбар или футер не грузяццо ваще.
Я шоке
спасибо! админка начала после отключения всех виджетов начала работать ораздо шустрее!! ... или мне показалось..?
Скорее вам показалось, не могло это так заметно сказаться на производительности. Просто стало удобнее возможно.