Home funzioni current_user_can() ruolo wordpress

current_user_can() ruolo wordpress

118
0

Tuttavia, current_user_can può essere utilizzato non solo con il nome del ruolo dell’utente, ma anche con le funzionalità.

Questo articolo spiega come utilizzare la funzione current_user_can in WordPress. Vengono inoltre introdotti i parametri, il valore restituito ed esempi di utilizzo.

Questa funzione accetta anche un ID di un oggetto per verificare se la capacità è una meta capacità. Le meta capacità come edit_post e edit_user sono capacità utilizzate dalla funzione map_meta_cap() per mappare le capacità primitive di un utente o ruolo, come edit_posts e edit_others_posts.

Restituisce se l’utente corrente ha o meno la capacità specificata.
Struttura

La funzione current_user_can è scritta come segue.

current_user_can( $capability, $args )
Parameter name Description
$capability (Required) Capability name
$args Additional Parameters

$capability

Specificare il ruol dell’urente. Required.

I ruoli nativi di wordpress sono ( admin/editor/contributor/contributor/subscriber ) da sostituire  $capability.

$args

Specifiche parametri addionati

Restituisce valore vero  o falso, facciamo qualche esempio:

wp-includes/capabilities.php

current_user_can( 'edit_posts' );
current_user_can( 'edit_post', $post->ID );
current_user_can( 'edit_post_meta', $post->ID, $meta_key )

Sebbene il controllo rispetto a ruoli particolari al posto di una capacità sia supportato in parte, questa pratica è scoraggiata in quanto potrebbe produrre risultati inaffidabili.

function current_user_can( $capability, ...$args ) {
	return user_can( wp_get_current_user(), $capability, ...$args );
}

Facciamo qualche esempio:

<?php if( current_user_can('editor') || current_user_can('administrator') ) {  ?>
    // qui mettiamo il codice per administrators or editors
<?php } ?>

Se vuoi controllare più di due ruoli, puoi controllare se i ruoli dell’utente corrente sono all’interno di un array di ruoli, qualcosa del tipo:

$user = wp_get_current_user();
$allowed_roles = array('editor', 'administrator', 'author');
<?php if( array_intersect($allowed_roles, $user->roles ) ) {  ?>
   // qui mettiamo il codice per i ruoli che sono in $allowed_roles
<?php } ?>

Previous articlePHP 8.2: Dynamic Properties are deprecated
Next articleCreare un form di registrazione su wordpress

LEAVE A REPLY

Please enter your comment!
Please enter your name here