Eliminar widgets del escritorio en WordPress
Los widgets dentro del escritorio, son un componente relativamente novedoso en WordPress (aparecieron en la versión 2.7). Pueden ser útiles para mostrar ciertos datos, por ejemplo los resultados de Google Analytics.
Sin embargo, debemos asegurarnos tener control sobre ellos, cuando le instalamos WordPress a un cliente y modificamos muchas cosas mostrar más widget de la cuenta puede ser un problema.
Para conseguir personalizar el escritorio usaremos el siguiente método.
function quitar_widgets_escritorio() { global $wp_meta_boxes; // quitar el widget de enlaces entrantes unset($wp_meta_boxes['dashboard']['normal']['core'] ['dashboard_incoming_links']); // quitamos unos pocos más: right-now, primario y secundario unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); } // lo unimos a su hook add_action('wp_dashboard_setup', 'quitar_widgets_escritorio' );
Como podéis ver la idea es hacer un unset del elemento deseado dentro de la colección: $wp_meta_boxes[‘dashboard’]. En el Codex tenéis más información sobre esta colección y todo lo referente a los widgets del escritorio.
Quitar widgets dependiendo del rol de usuario
Por supuesto, también podemos realizar esta misma operación teniendo en cuenta el rol del usuario. Es muy útil si queremos distinguir entre: administradores, editores, colaboradores… y mostrarle a cada uno la información deseada:
function personalizar_meta_boxes() {
global $current_user; get_currentuserinfo(); // si el nivel de usuario es menor que 3 lo eliminamos if ($current_user->user_level < 3) remove_meta_box('postcustom','post','normal'); } // lo unimos a su hook add_action('admin_init','personalizar_meta_boxes');
Os recomiendo leeros la referencia completa de la función remove_meta_box.