【WordPress】投稿者権限のユーザーに各自の投稿した記事だけを見えるようにする方法

Photo by Justin Morgan

こんにちは、マーチンです。

職場でWordpressを使用しているのですが投稿者が数人に増えたので問題も発生しています。

投稿者権限だと記事の投稿だけができるようになるのですが他のユーザーが投稿した記事も全て管理画面で見えるという仕様になっています。

投稿している部署によってはパスワード管理をしている記事などもあるので見られると困ります。

そこで、投稿者権限に管理画面では自分の作った投稿だけが見えるようにする方法をご紹介します。

投稿者権限のユーザーに自分の投稿だけが見えるようにする

投稿者権限のユーザーに自分の投稿した記事だけが管理画面のリストで見えるようにします。

下記のようにテーマの【functions.php】に追記。

function show_only_authorpost($query) {
    global $current_user;
    if(is_admin()){
        if(current_user_can('author') ){
            $query->set('author', $current_user->ID);
        }
    }
}
add_action('pre_get_posts', 'show_only_authorpost');
 

投稿者権限のユーザーに自分の投稿したメディアのみが見えるようにする

次に画像追加時のメディアライブラリも投稿者権限のユーザーが追加した画像のみが見えるようにします。

同じくテーマの【functions.php】に追記。

function show_only_authorimage( $where ){
    global $current_user;
    if(is_admin()){
        if(current_user_can('author') ){
            if( isset( $_POST['action'] ) && ( $_POST['action'] == 'query-attachments' ) ){
                $where .= ' AND post_author='.$current_user->data->ID;
            }
        }
    }
    return $where;
}
add_filter( 'posts_where', 'show_only_authorimage' );
 

IT, WordPressIT, WordPress

Posted by まーちん