Некоторые принципы по созданию порядка в админке и удобству реализации функционала сайта.
- Для удобства редактирования кода устанавливаем плагин Advanced Code Editor. Он также немного преобразует панель Редактирование. Также плагин дает возможность создавать файлы php и css. В современных версиях WP это не требуется, штатный редактор стал намного более удобным, работающим на ajax.
- Стили CSS, которые мы редактируем не часто (animate.css, font-awesome.css, ihover.css) помещаем в папку css. Так они не будут отображаться в панели Редактирование шаблонов.
- Все дополнительные функции сайта (слайдер, боковая панель и т.д.) лучше реализовывать в виде плагинов. Это будет экономить место в панели Редактирование, а также сократит css и js если не будут использоваться. При этом код плагинов можно редактировать.
Кнопка в админ панели
Добавляем свою кнопку в верхнюю админ панель. Для примера я сделал кнопку перехода в Яндекс Метрику:
//Кнопка в Admin bar
function admin_bar_theme_editor_option() {
global $wp_admin_bar;
if ( !is_super_admin() || !is_admin_bar_showing() )
return;
$wp_admin_bar->add_menu( array(
'id' => 'edit-theme',
'title' => __('<img src="/wp-content/themes/tester/images/metrika.svg"> Метрика'),
'href' => 'https://metrika.yandex.ru/dashboard?id=88856777',
'meta' => array ( 'target' => '_blank' )
) );
}
add_action( 'admin_bar_menu', 'admin_bar_theme_editor_option', 100 );
Языковая версия админки
Чтобы поменять язык админки, нужно сделать следующее:
1. В настройках админки (Общие) установить необходимый язык.
2. Добавить в wp-content/languages/ файлы необходимого перевода (Po, Mo)
3. Прописать в wp-config: define(‘WPLANG’, ‘ru_RU’);
4. Перейти в раздел обновлений и перейти на необходимую версию
Блокировка обновления php-файлов
Некоторые плагины вызывают блокировку обновления php-файлов. Это происходит со следующими плагинами: WP-SpamShield, wp-creator-calculator.
Ошибки jQuery в админке
Если админка перестала нормально функционировать из-за ошибок jQuery, произойти это может например из-за отключения с версии 5.5 поддержки jQuery migrate, можно восстановить нормальную работу плагином Enable jQuery Migrate Helper (200 000).
Удаляем лишние пункты меню
В данном примере установлено убирать пункты для всех ролей кроме администратора
add_action( 'admin_init', 'my_remove_menu_pages' );
function my_remove_menu_pages() {
global $user_ID;
if ( $user_ID != 1 ) { //your user id
remove_menu_page('index.php'); // Media
//remove_menu_page('edit.php'); // Posts
remove_menu_page('upload.php'); // Media
remove_menu_page('link-manager.php'); // Links
remove_menu_page('edit-comments.php'); // Comments
remove_menu_page('edit.php?post_type=page'); // Pages
remove_menu_page('plugins.php'); // Plugins
remove_menu_page('themes.php'); // Appearance
remove_menu_page('users.php'); // Users
remove_menu_page('tools.php'); // Tools
remove_menu_page('options-general.php'); // Settings
}
}
Либо если нужно сделать условия не по ID а по роли меняем условие
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
if ( $user_role != 'administrator' ){
}
Скрыть виджеты с главного экрана (консоль)
function remove_dashboard_widgets() {
global $wp_meta_boxes;
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_drafts']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_site_health']);
}
add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );
Скрыть лишние боксы из редактирования записи
function wpse60590_remove_metaboxes() {
//remove_meta_box( 'categorydiv' , 'post' , 'normal' );
remove_meta_box( 'tagsdiv-post_tag' , 'post' , 'normal' );
remove_meta_box( 'postexcerpt' , 'post' , 'normal' );
remove_meta_box( 'postcustom' , 'post' , 'normal' );
remove_meta_box( 'commentstatusdiv' , 'post' , 'normal' );
remove_meta_box( 'trackbacksdiv' , 'post' , 'normal' );
remove_meta_box( 'commentsdiv' , 'post' , 'normal' );
remove_meta_box( 'slugdiv' , 'post' , 'normal' );
}
add_action( 'admin_menu' , 'wpse60590_remove_metaboxes' );
Удалить блок с основным контентом:
function remove_pages_editor(){ remove_post_type_support( 'post', 'editor' ); }
add_action( 'init', 'remove_pages_editor' );
Скрыть некоторые элементы интерфейса редактирования записи для всех ролей кроме администратора
// Colours posts rows depending on the status
add_action( 'admin_footer', 'admin_footer_example' );
function admin_footer_example() {
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
if ( $user_role != 'administrator' ){
echo '<style type="text/css">#minor-publishing-actions, #misc-publishing-actions #visibility, #misc-publishing-actions, #titlediv .inside {display: none;}</style>';
}
}
Блок с миниатюрой отключить не получится. Если он не нужно его просто не нужно подключать.