Estoy tratando de ocultar ciertos elementos del menú de administración en WordPress de todos los usuarios excepto uno (yo mismo).
Puedo encontrar varios tutoriales, pero en su mayoría se esconden en los roles de los usuarios en lugar de los usuarios.
Encontré esto en el códice de WordPress:
<?php
function custom_menu_page_removing() {
remove_menu_page( $menu_slug );
}
add_action( 'admin_menu', 'custom_menu_page_removing' );
?>
Pero no lo entiendo completamente, además creo que tendré que agregarle un poco más de PHP para que el código esencialmente diga:
Si el usuario no es shaun@seedcreativity.co.uk (¡Yo!)
Luego elimine estos elementos del menú:
Id. de artículo 1, Id. de artículo 2, Id. de artículo 3, etc…
¿Alguien puede ayudar?
AfikDeri
Puede verificar la identificación del usuario:
// admin_init action works better than admin_menu in modern wordpress (at least v5+)
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('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
}
}
-
Genial: admin_menu no funcionará en la versión actual de wp, mientras que admin_init funciona perfectamente
-Luca Reghellin
11 de enero a las 10:02
Puede eliminar el menú Publicaciones para un correo electrónico dado con:
function custom_menu_page_removing() {
if ( get_currentuserinfo()->user_email != 'shaun@seedcreativity.co.uk' )
remove_menu_page( 'edit.php' );
}
add_action( 'admin_menu', 'custom_menu_page_removing' );
No evitará que los usuarios usen páginas eliminadas si pueden adivinar la URL correcta, por ejemplo, /wp-admin/edit.php
naveen giri
Puedes probar este código.
function remove_menus(){
$current_user = wp_get_current_user();
if( 'shaun@seedcreativity.co.uk' !== $current_user->user_email){
remove_menu_page( 'item1' );
remove_menu_page( 'item2' );
}
}
add_action( 'admin_menu', 'remove_menus' );
item1, item2 será el nombre de su página, por ejemplo
http://test.com/wp-admin/admin.php?page=item1
http://test.com/wp-admin/admin.php?page=item2
-
Eso es perfecto, gracias 🙂 Si quisiera agregar un segundo usuario, además de mí, ¿cómo lo agregaría? Intenté agregar: . ‘nuevo correo electrónico’ después del mío, pero no funcionó … ¿Es un complemento simple como ese?
–ShaunTaylor
21 de marzo de 2017 a las 17:45
-
función remove_menus(){ $usuario_actual = wp_get_usuario_actual(); if( in_array( $usuario_actual->correo_de_usuario, array(‘primerusuario@email.com’,’segundousuario@email.com’,)) ){ remove_menu_page( ‘item1’ ); remove_menu_page(‘elemento2’); } } add_action( ‘admin_menu’, ‘remove_menus’ ); úsalo así para múltiples usuarios
– Naveen Giri
13/04/2017 a las 10:00
-
puedes usar este complemento. wordpress.org/plugins/hide-admin-menú
– Bhavin Thummar
3 de enero de 2019 a las 6:20