J'utilise ceci après avoir vérifié si l'utilisateur est admin
if ( isset($_GET['action']) && $_GET['action'] === 'edit' )
y a-t-il un meilleur moyen?
Vous pouvez utiliser get_current_screen
pour le déterminer.
$screen = get_current_screen();
if ( $screen->parent_base == 'edit' ) {
echo 'edit screen';
}
Je ne sais pas si je dirais exactement que c'est toujours mieux, cela dépend de ce qui est nécessaire, mais c'est probablement la façon dont je le ferais. Le gros avantage de cette méthode est que vous avez accès à plus d’informations et qu’il peut faire plus de distinctions différentes. Il suffit de regarder la documentation pour comprendre ce que je veux dire.
Il devrait être utilisé dans les crochets ultérieurs, Codex dit:
La fonction retourne
null
si elle est appelée à partir du hookadmin_init
. Il devrait pouvoir être utilisé dans un hook ultérieur tel quecurrent_screen
.
il est fort probable que la prochaine chose que vous voulez comprendre est, si vous êtes réellement sur une page ou un post ...
// Remove pointless post meta boxes
function FRANK_TWEAKS_current_screen() {
// "This function is defined on most admin pages, but not all."
if ( function_exists('get_current_screen')) {
$pt = get_current_screen()->post_type;
if ( $pt != 'post' && $pt != 'page') return;
remove_meta_box( 'authordiv',$pt ,'normal' ); // Author Metabox
remove_meta_box( 'commentstatusdiv',$pt ,'normal' ); // Comments Status Metabox
remove_meta_box( 'commentsdiv',$pt ,'normal' ); // Comments Metabox
remove_meta_box( 'postcustom',$pt ,'normal' ); // Custom Fields Metabox
remove_meta_box( 'postexcerpt',$pt ,'normal' ); // Excerpt Metabox
remove_meta_box( 'revisionsdiv',$pt ,'normal' ); // Revisions Metabox
remove_meta_box( 'slugdiv',$pt ,'normal' ); // Slug Metabox
remove_meta_box( 'trackbacksdiv',$pt ,'normal' ); // Trackback Metabox
}
}
add_action( 'current_screen', 'FRANK_TWEAKS_current_screen' );
variable globale $ pagenow
global $pagenow;
if (( $pagenow == 'post.php' ) || (get_post_type() == 'post')) {
// editing a page
}
if ($pagenow == 'profile.php') {
// editing user profile page
}
Pour vérifier si l'utilisation actuelle est un administrateur, j'aime utiliser la fonction suivante:
<?php
function is_user_admin(){
if ( is_user_logged_in() ){
if( current_user_can( 'manage_options' ) )
{
return true;
}
else
{
return false;
}
}
return false;
}
?>