Поеми контрол върху потребителските роли

Днешните функции, които ще разгледаме в някои от случаите може да са ни от много голяма полза. Например когато трябва да предоставим на клиент Администраторски права за WordPress панела  и същевременно да го държим на страна от други места които не трябва да пипа. Моят съвет е – пазете администраторските права само за себе си! В по голямата част от потребителите не им трябва пълен контрол. Следващата функция може да ни е от полза, когато искаме да премахнем излишни мета боксове (meta boxes) от таблото (dashboard) и да си го персонализираме по собствен начин.

Ще започнем с премахване на цяла страница от основното меню в Админ панела. Да приемем, че даден потребител или група потребители не трябва да имат достъп до раздел Разширения(Plugins)


function remove_menu_pages() {
    $user = wp_get_current_user();
    if ($user->nickname == 'pe6o') {

         remove_menu_page( 'plugins.php' );
    }
}
add_action('admin_menu', 'remove_menu_pages', 101);

Кратко обяснение към кода: ако логнатия потребител е pe6o премахни раздел плъгинс. 

Този код ще забрани, редактирането на файлове по темата и плъгините може да го интегрирате директно в конфигурационния файл на WordPress „wp_config.php“.


define( 'DISALLOW_FILE_EDIT', true );

Следващия пример е премахване на второстепенна страница (submenu)


 remove_submenu_page('themes.php', 'nav-menus.php');

Този код ще премахне От раздела „Външен вид“ (Appearance) раздел Менюта (Menus)

Повече за премахване на страниците може да прочетете на WordPress codex като потърсите remove_menu_page.

Премахване на мета боксове от главното табло на WordPress

Сега да видим как да премахваме елементи или по правилно мета боксове от таблото. Да предположим, че новините от WordPress няма да ни трябват. За всеки случай ще постна и за останалите боксове данните.

function cw_remove_dashboard_element() {
    
     remove_meta_box('dashboard_primary', 'dashboard', 'side');
//   remove_meta_box('dashboard_incoming_links', 'dashboard', 'normal');
//   remove_meta_box('dashboard_plugins', 'dashboard', 'normal');
//   remove_meta_box('dashboard_secondary', 'dashboard', 'normal');
//   remove_meta_box('dashboard_quick_press', 'dashboard', 'side');
//   remove_meta_box('dashboard_recent_drafts', 'dashboard', 'side');
//   remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
//   remove_meta_box('dashboard_right_now', 'dashboard', 'normal');
//   remove_meta_box('dashboard_activity', 'dashboard', 'normal'); //since 3.8
}

add_action('admin_init', 'cw_remove_dashboard_element');

Лично аз тези дема ги разработвам като плъгини, но може и по други начини примерно в function.php файла. За сега това е от мен, надявам се да съм ви бил полезен. Ако засечете някакви грешки или просто искате да ме питате или пишете не се колебайте да го направите през контактната форма.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *