10 хаков для настройки административной панели WordPress
Хаки-это небольшие доработки или дополнения кода, которые позволяют расширять или оптимизировать функционал WordPress без установки какого-либо плагина. Они позволяют не только дополнить полезными функциями ту или иную страницу блога, но и скрыть или совсем убрать ненужные элементы или возможности. Причем, административная панель также не стала исключением и сегодня я расскажу вам о десяти хаках, которые окажутся для некоторых полезными и помогут вам настроить административную панель WordPress для ваших нужд. Представленные хаки служат как для решения простых, так и для более продвинутых целей.
1. Удаляем админ-бар в верхней части экрана
Эта панель появилась в WordPress, начиная с версии 3.1 и очень напоминает админ-панель из Twitter. Видимо, твиттеромания перекочевала и в WoordPress.
Если вам не нравится эта панель или доставляет неудобства, вы можете отключить ее, добавив фильтр в файл functions.php:
add_filter( 'show_admin_bar', '__return_false' );
2. Назначаем интервал автосохранения
WordPress имеет возможность автоматически сохранять ваши записи или страницы, так что если вдруг вы случайно закрыли браузер или ваш компьютер неожиданно выключился, то вы не потеряете все ваши записи, а работа ваша не будет напрасной. Думаю, слишком частое автоматическое сохранение все-так сказывается в некоторой степени на производительность сайта, поэтому вы сами можете задать интервал автосохранения. Чтобы задать этот интервал, нужно добавить нижеприведенную строку в файл wp-config.php движка:
define('AUTOSAVE_INTERVAL', 600); // 60 * 10, автосохранение каждые 10 минут
Обратите внимание, что в качестве единиц измерения времени берутся секунды. Вышеприведенный код позволяет производить автосохранение каждые 10 минут.
3. Отключаем автосохранение записей
Некоторые авторы своих записей предпочитает полное отключение автосохранения. Это можно сделать добавлением кода в файл functions.php:
function no_autosave() { wp_deregister_script('autosave'); } add_action( 'wp_print_scripts', 'no_autosave' );
4. Сокращение или отключение истории изменения записей
Все вы видели в самом низу страницы редактирования записи блок с ревизиями, в котором хранится история изменения записи, к которым вы можете вернуться и этот блок может содержать очень большое количество ревизий, которые вам вряд ли будут нужны или, допустим, вам будет достаточно лишь последних, наиболее свежих пяти.
Это не только занимает большое количество места на странице, но и также занимает некоторое количество места в базе данных, а это вряд ли кому то будет нужно. Чтобы ограничить количество сохраненных копий записи или отключить отображение вообще, добавьте в файл wp-config.php следующий код:
define('WP_POST_REVISIONS', 5); // Максимум 5 записей define('WP_POST_REVISIONS', false); // Отключить сохранение
5. Очистка корзины автоматически
Такой инструмент, как корзина, был введен еще в WordPress 2.7 и остается вплоть до самой последней версии. Этот инструмент очень удобен, так как позволяет вам восстанавливать случайно удаленные записи в административной панели сайта. Корзина действует по тому же самому принципу, что и, например, корзина в Windows. Опять же, помещенные записи в корзину не удаляются физически, а остаются в базе данных, поэтому очень важно периодически очищать корзину, высвобождая тем самым свободное место в базе данных. Согласитесь, выносить мусор из дома не очень интересное занятие и было бы гораздо удобнее, чтобы это делал кто-нибудь за вас. К счастью, WordPress поможет это сделать за вас. Для этого добавьте строчку кода в файл wp-config.php движка:
define('EMPTY_TRASH_DAYS', 5 ); // Очищать корзину каждые 5 дней
6. Удаляем визуальный редактор
Для некоторых, особенно для веб-разработчиков очень важна HTML-разметка записей и, особенно, кода, находящегося в нем, а визуальный редактор вставляет в разметку очень много ненужного “мусора”.
Можно, конечно отключить визуальный редактор для каждого пользователя индивидуально в разделе Пользователи –> Профиль, но если у вас возникнет желание полностью его отключить для всех, то вставьте соответствующий фильтр в файл functions.php вашей темы:
add_filter('user_can_richedit' , create_function('' , 'return false;') , 50);
Уж не знаю, кому из вас он может пригодиться, но на всякий случай знайте и имейте ввиду, что сделать это можно именно таким способом.
7. Редактирование текста в выпадающей панели “Помощь”
Вы, наверное заметили, что в правом верхнем углу находится кнопка “Помощь”, при нажатии на которую появится выпадающая панель с разделами справки по WordPress. Допустим, если вы являетесь разработчиком какой-нибудь темы для WordPress и передаете ее своему клиенту, то нет лучше места, чем разместить свой текст с какой-нибудь служебной информацией или подсказками по настройке темы в этой панели. Вы даже можете добавить и собственную выпадающую панель с какой-нибудь другой информацией.
Вставьте в файл functions.php следующий код:
add_action('load-page-new.php','custom_help_page'); add_action('load-page.php','custom_help_page'); function custom_help_page() { add_filter('contextual_help','custom_page_help'); } function custom_page_help($help) { // echo $help; // Раскомментируйте эту строчку, если вы хотите добавить текст в панель "Помощь" по-умолчанию echo "<h5>Custom Help text</h5>"; echo "<p> HTML goes here.</p>"; }
Принцип добавления панели происходит следующим образом. Например, если вы хотите добавить свой текст в панель “Помощь” на страницу создания новой записи, которое имеет имя файла post-new.php, то вы должны использовать префикс post-new в load-post-new.php так, как это показано в коде выше на примере панели “Помощь” при создании новой страницы.
8. Добавление новых полей в панель “Контактная информация”
В настройках пользователя есть форма с его контактной информацией, которая включает адрес электронной почты, веб-сайт и совершенно, думаю, ненужные поля с AIM, Yahoo AIM и Jabber / Google Talk. А где же наиболее актуальные Twitter и Facebook? Увы, по-умолчанию в WordPress таких полей нет, поэтому можно добавить новые поля и убрать ненужные.
Для этого вставьте код в файл functions.php:
function new_contactmethods( $contactmethods ) { $contactmethods['twitter'] = 'Twitter'; // Добавляет Twitter $contactmethods['facebook'] = 'Facebook'; // Добавляет Facebook unset($contactmethods['yim']); // Удаляет Yahoo IM unset($contactmethods['aim']); // Удаляет AIM unset($contactmethods['jabber']); // Удаляет Jabber return $contactmethods; } add_filter('user_contactmethods','new_contactmethods',10,1);
9. Изменение возможностей групп
Данный хак удобен, если у вас на на сайте или блоге имеется несколько групп пользователей (роли пользователей). Следующий код позволяет изменять или добавлять некоторые возможности группам.
$edit_contributor = get_role('contributor'); // Получение роли пользователем $edit_contributor->add_cap('upload_files'); // Пользователь теперь может загружать медиафайлы $edit_contributor->remove_cap('delete_posts'); // Пользователь теперь не может удалять записи
Возможностей много для разных групп, здесь я привел небольшой пример. Полный список функций и возможностей, которые вы можете добавлять или удалять можно найти здесь.
Важно: все возможности записываются в базу данных поэтому если вы хотите вернуть возможность роли пользователя, вы должны использовать функцию add_cap. Это функция, обратная удалению и, наоборот, используйте remove_cap, если вы хотите удалить возможность. Другими словами, если вы удалили какую-то возможность пользователю, то вернуть ее простым удаление строчки кода не получится.
10. Проверка возможностей пользователя
Это очень полезный прием, если вы хотите знать какие возможности назначены тем или иным группам пользователей. Это делается с помощью условных тегов.
if( !is_admin() ) { add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) ); }
Использование условия is_admin() является одним из способов сделать это, но есть также функция current_user_can(), которая позволяет вам определить, какой возможностью пользователь должен обладать независимо от того, открыты они ему или нет.
if( current_user_can('edit_pages') ) { // Условие истинно, если пользователь может редактировать страницы } if( !current_user_can('delete_private_posts') ) { // Условие истинно, если пользователь не может удалять личные сообщения } if( current_user_can('activate_plugins') ) { // Условие истинно, если пользователь может активировать плагины }
10 хаков для настройки административной панели WordPress: 22 комментария
У меня сайт на WP, так что уже взяла кое-что на заметку. Спасибо.
define(‘WP_POST_REVISIONS’, 5); // Максимум 5 записей
define(‘WP_POST_REVISIONS’, false); // Отключить сохранение
Этот код в версии 3.2.1 не работает. А историю и автосохранение очень надо убрать. Спасибо.
Хаки, описываемые в данной статье, проверялись в версии 3.1.3, поэтому работоспособность того или иного хака на последней версии wordpress я не гарантирую.
function new_contactmethods( $contactmethods ) {
$contactmethods[‘twitter’] = ‘Twitter’; // Добавляет Twitter
$contactmethods[‘facebook’] = ‘Facebook’; // Добавляет Facebook
unset($contactmethods[‘yim’]); // Удаляет Yahoo IM
unset($contactmethods[‘aim’]); // Удаляет AIM
unset($contactmethods[‘jabber’]); // Удаляет Jabber
return $contactmethods;
}
add_filter(‘user_contactmethods’,’new_contactmethods’,10,1);
Как убрать в профиле поле “Сайт” ?
Я знаю только один “жесткий” способ сделать это. Взять и вырезать код из самого WordPress. Для этого в файле wp-admin/user-edit.php найдите и удалите строчки:
<tr>
<th><label for="url"><?php _e('Website') ?></label></th>
<td><input type="text" name="url" id="url" value="<?php echo esc_attr($profileuser->user_url) ?>" class="regular-text code" /></td>
</tr>>
Спасибо работает, вроде без ошибочно.
SoS…… Подскажите как сделать что бы посетители могли загружать фото в фото-выставку на сайте. Я установил Coppermine Photo Gallery но она не работает – может я не туда установил негде не написано куда на хосте её устанавливать. Если кто пользуется этой программой подскажите. Может есть какие плагины для wordpress для этого .
Здравствуйте!
Я новичок в системе WordPress. Я раньше работал с Joomla!
Теперь мне дали сайт. Его надо переделать. Там стоял wp v. 3.1 (кажется). Я его перенес себе на домашний комп на Денвер. Работает. Обновил до версии 3.3 Кроме перевода ничего не изменилось.
Админ-панель совсем не такая, как на фотках в Кодексе или на других сайтах. В админ-панели НЕТ меню с управлением ПЛАГИНами!
Я уже около десятка сайтов облазил.
ПОМОГИТЕ!
Александр, я не понимаю в чем именно вам помощь нужна? Вы уверены, что нет панели управления плагинами? Обновите версию еще раз вручную.
Уточню проблему.
В административной панели WordPress есть: Консоль, Записи, Медиафайлы, Ссылки, Страницы, Комментарии, Профиль, Инструменты, Contact и кнопка “Свернуть меню”. Больше ничего там нет. Нету плагин-панели и панели управления меню, шаблонами и т.п. Как поставить плагин без плагин-панели?
Я уверен, что правильно поставил Денвер и Вордпресс на Денвер.
Я выложил фотку админ-панели по этому адресу: http://foto.mail.ru/mail/alexandrchirkov/work
Попробуйте переустановить wordpress. Откуда скачивали дистрибутив WordPress, с официального сайта? Судя по скрину у вас уже стоит плагин контактной формы, откуда он взялся??
Здравствуйте, столкнулся с такой проблемой, когда я на сайте как админ пытаюсь войти в свой профиль, мне выдаёт “You are not authorized to view this page.” Профили же зарегистрированных посетителей я могу открывать и редактировать. Подскажите пожалуйста чем это лечится?
P.S. Alexandr-с такой проблемой я однажды сталкивался, всё оказалось в шаблоне. как только я его сменил, вкладка внешний вид и плагины появились. Тему удали через FTP.
Лечится это переустановкой wordpress, а также установкой официального дистрибутива движка. Стоят ли на сайт плагины, типа Role Manager или ему подобные?
Никаких плагинов связанных с администрированием либо пользователями нет. Чувствую придётся вручную заменить все файлы WP.
Ок, поля твиттер и фэйсбук добавили и?…
выводить кликабельный юзернэйм?
Выводить кликабельную аву?
Вообще хоцца плагин типа ulogin ток с привязкой нескольких соц аккаунтов.. ну как ipb делает… подкиньте, если знаете такой
8 хак весьма полезный ) Спасибо!
Все добавил как написано в п.8. Добавление новых полей в панель «Контактная информация», но ни чего не работает. В чем причина?
Какую версию WordPress вы используете?
Я знаю только один «жесткий» способ сделать это. Взять и вырезать код из самого WordPress. Для этого в файле wp-admin/user-edit.php найдите и удалите строчки:
<input type="text" name="url" id="url" value="user_url) ?>” class=”regular-text code” />>
Я совсем хочу удалить все не нужные мне поля, нашел их в этом файле, удаляю, удаляю, но на сайте все без изменений. Может еще где нибудь нужно их удалить?
Красава! отличные хаки!
Волнует 1 вопрос, а можно ли изменить админку таким образом, чтобы вообще не было понятно, что это вордпресс?
Можно установить специальные темы для админки, которые ее изменят. Только смотря какую цель вы при этом преследуете.