Tout savoir sur WordPress
Tutoriel WordPress

Afficher uniquement les articles d’un auteur dans l’administration

Cette astuce permet d’afficher aux contributeurs uniquement les articles qu’ils ont écrits dans l’espace d’administration.

Cette astuce peut être intéressante si vous avez beaucoup d’articles écrits par différents contributeurs sur votre site Internet. Par défaut, quand un contributeur se rend dans la liste des articles à partir de l’administration, il peut voir ses articles et ceux qui ont été rédigés par d’autres personnes.

Le but de cette astuce est d’afficher les articles écrits par un contributeur et uniquement les siens. Pourquoi afficher les autres articles dans la liste alors qu’il ne peut pas les modifier !

Pour cela, il faut copier le code ci-dessous dans le fichier functions.php présent à la racine de votre thème :

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]


if( is_admin() ) {

    function baw_author_posts_only( $query ) {

        $user = wp_get_current_user(); // on va chercher l'utilisateur en cours
        if( $user->user_level set( 'author', $user->ID ); // on ajoute l'auteur dans la requête
            $screen = get_current_screen(); // on va chercher le "screen" actuel
            add_filter('views_' . $screen->id, 'baw_remove_post_counts' ); // et on filtre les liens de filtrages
        }
        return $query;
    }
    add_filter('pre_get_posts', 'baw_author_posts_only' );
     
    function baw_remove_post_counts( $views ) {
        return (array)$views['mine']; // je ne garde que le filtre "les miens"
    }
}

[/pastacode]

J’ai ajouté une condition is_admin(), j’avoue ne pas la mettre souvent dans mes astuces alors que je pourrais, mea culpa !

Certains d’entre vous reconnaîtront le sujet puisqu’il a été débattu sur seomix.fr sur cet article. Je me permets de reprendre mon code posté dans ses commentaires pour en faire une astuce ici.

Merci à vous !

Cet article a été mis à jour il y a 4303 jours - Il n'est peut être plus à jour !

Article écrit par Julio P.

Fondateur de SecuPress, l’extension de sécurité WordPress, Julio Potier est un Expert WordPress, un Formateur Expérimenté et un Consultant en Sécurité Web.

Il aime partager ses compétences et ses réflexions sur WordPress, donnant des conférences partout dans le monde.

11 Commentaires

  1. @François : Il est vrai que cette astuce est tout simplement génial. C’est le genre de chose qui devrait être gérer par défaut sur WordPress !

  2. Merci pour ce code qui est intéressant, seul souci il retire les custom fields (advanced custom fields) dans les posts. Comment faire ?

  3. @Aurélien: La joie des plugins qu’on ne contrôle pas :) Un jour, je présenterai ma classe qui est équivalent de ACF. Un jour peut-être :)

  4. “Ca enlève des champs ACF” dans baw_remove_post_counts() il faut alors renvoyer les autres onglets de ACF et ça passe ;)