Je dois définir différentes options d'écran (titre, auteur, catégories ...) dans la page de résumé de publication pour les utilisateurs non administrateurs (éditeur, auteur ..) qui ne peuvent pas être modifiées par l'utilisateur.
Exemple :
Ceci est la vue administrateur et je dois masquer les colonnes View Count
& SEO
pour les utilisateurs non administrateurs.
Quelqu'un a-t-il une idée, comment y parvenir?
Je suppose que vous avez besoin de quelque chose comme quoi les éditeurs ne peuvent pas voir la colonne de catégorie ou quelque chose comme ça.
Cet extrait pourrait vous aider:
/** Remove "Options"-Panel, when User is not admin **/
add_filter( 'manage_posts_columns', 'change_columns_for_user', 10, 2 );
function change_columns_for_user( $columns, $post_type ){
if( 'post' != $post_type )
return $columns;
if( current_user_can( 'manage_options' ) )
return $columns;
else{
//Remove Categories
unset( $columns['categories'] );
//Remove Tags
unset( $columns['tags'] );
//Remove Comments
unset( $columns['comments'] );
return $columns;
}
}
Dans cet extrait, nous désactivons certaines colonnes si l'utilisateur ne peut pas utiliser les options managa. Vous connaissez le panneau d'options en haut: dans ce cas, ils ne s'afficheraient même plus dans ce panneau.
Mais il ne devrait pas être en mesure de changer de la connexion de l'utilisateur particulier.
Si vous souhaitez toujours désactiver le panneau d'options pour certains utilisateurs, jetez un coup d'œil à cet extrait:
/** Remove "Options"-Panel, when User is not admin **/
add_filter( 'screen_options_show_screen', 'remove_screen_settings', 10, 2 );
function remove_screen_settings( $show_screen, $class ){
if( 'edit-post' != $class->id )
return $show_screen;
if( ! current_user_can( 'manage_options' ) )
return false;
else
return true;
}
J'ai accepté la réponse @websupporter en fonction de ma question.
Cependant, j'aimerais ajouter quelques codes à la question spécifique que j'ai rencontrée précédemment.
Je dois supprimer les colonnes supplémentaires du plug-in Yoast SEO
des utilisateurs non administrateurs. Dans ce cas précis, Yoast SEO
fournit le point d'ancrage pour désactiver les colonnes. Donc, je l'ai utilisé comme ci-dessous.
/** Remove SEO columns when User is not admin**/
function remove_page_analysis_for_non_admin(){
if( current_user_can( 'manage_options' ) )
return true;
else{
return false;
}
}
add_filter( 'wpseo_use_page_analysis', 'remove_page_analysis_for_non_admin', 10, 2 );
Si quelqu'un souhaite le supprimer pour tous les utilisateurs, utilisez le code suivant
add_filter( 'wpseo_use_page_analysis', '__return_false' );