ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

デフォルトの編集エリアを非表示@WordPress

WordPressの投稿や固定ページの編集エリアを非表示にする方法です。 functions.phpにアクションフックを使って設定します。

サイトによってはこの部分が不要で、追加したカスタムフィールドの内容だけで十分という場合があります。その場合、クライアントさんにはこの部分はむしろ邪魔になる場合も少なくないので、あまり多くはありませんが「不要なものは見せない」ことも大事ですので、このように対応しています。

functions.php

/* ++++++++++++++++++++++++++++ */
/*
/* デフォルトの編集エリアを非表示(権限グループを指定して)
/*
/* ++++++++++++++++++++++++++++ */
add_action( 'init' , 'my_remove_post_editor_support' );
function my_remove_post_editor_support() {
    if ( current_user_can('editor') ) { // ログインしているユーザの権限グループを指定
        remove_post_type_support( 'page', 'editor' ); // 「投稿」の編集エリアの場合はpageをpostに
    }
}

この例ではログインしているユーザーの権限グループを編集者(editor)に指定し、編集エリアを非表示にする対象は固定ページ(page)としています。

コメントにあるように「page」を「post」にすると投稿の編集エリアが非表示対象となります。

CSSで対応する場合

使用しているプラグインや環境によっては前述のやり方では不具合が起きる場合があります。(例:プラグイン Toolset Typesでは日時を入れるカスタムフィールドが機能しなくなりました)そういった場合には私はCSSで対応しています。あんまりスマートではないですが。

body.wp-admin #postdivrich{
    display:none;
}

特定のユーザーグループを指定して(例:editor=編集者)その場合に読み込むcssファイルに上記を記述して対応することもあります。

blog.showzine.co