ブログ

【WordPress】管理画面で記事の新規追加(登録)を禁止する

記事編集はOK。でも新規追加はNG。

ユーザーに特定の権限を割り当て、その権限では記事の新規追加をさせたくないときはどうすればよいか。
(管理画面上から「新規追加」ボタンをcssで消してしまうという方法もありますが、根本的な対応になっていないのでそちらは置いておきます。)

 

記事投稿の権限はデフォルトだと「編集できるひとは新規追加もできる」になっていて
編集と新規追加の権限を分ける必要があるようです。詳しくは下記を参照。
WordPress の新規追加の権限を切り分けてみる
ポイントは「capabilities」の「create_posts」。

 

編集と新規追加を分ける設定をし、その権限を割り当てられたユーザーでチェック。一覧画面にアクセスすると・・・

ページURL:edit.php

 

なぜかアクセスできません。

しかし、編集ページにはアクセスできるようです。

ページURL:post.php?post=○○&action=edit

 

新規追加ボタンはきえてますね。

 

一覧が表示されない理由はわかりませんでしたが、とりあえずはリダイレクト処理で回避しました。

function redirect_post() {
    if(!current_user_can('administrator') && !current_user_can('editor')){
        global $pagenow;

        if( $pagenow == 'edit.php' ) {
            wp_redirect( admin_url('post.php?post=' . [ここは記事ID] . '&action=edit') );
            die();
        }
    }
}
add_action( 'init', 'redirect_post' );

 

一覧が表示されない件について、もう少し調査してみようと思います。