WPBeginnerでは通常、ウェブサイトのユーザー権限をカスタマイズしています。ユーザーが自分の権限グループに必要なタスクのみを実行できるようにすることで、エラーの可能性を減らし、サイトのセキュリティを向上させることができます。
読者から、複数著者のWordPressブログで、投稿者が自分の投稿日のみ閲覧・編集できるようにできないかという問い合わせがありました。プライバシー上の理由から、寄稿者が公開するまで他の投稿者の投稿を見ないことを希望しているのです。
この投稿では、WordPressダッシュボードで投稿者が自分の投稿だけを表示・管理できるようにする方法を紹介する。
なぜ投稿者を自分の投稿に限定するのか?
初期設定では、WordPressサイトは管理エリアのユーザー権限グループに関係なく、すべての投稿とページをすべてのユーザーに表示します。投稿者、エディター、寄稿者、管理者のいずれであっても、すべての投稿を表示することができます。
投稿者があなたの会社やチームの一員であれば、通常は問題にはならない。
しかし、自分の投稿の表示を制限することは、特定の状況においては有用です。例えば、複数の投稿者がいるサイトを運営している場合、他の投稿者の投稿を閲覧できないようにすることは有効です。
それでは、WordPressの管理画面で投稿者が自分の投稿を表示できないようにする方法を見ていきましょう。この投稿で扱うトピックは以下の通りです:
プラグインを使って投稿者を自分の投稿に限定する
WordPressのプラグインを使えば、コードを編集することなく、投稿者が自分の投稿だけを見られるようにすることが簡単にできる。
このチュートリアルでは、PublishPress Permissionsプラグインを使用します。これはWordPressの権限を管理できる無料のプラグインで、ライターを自分の投稿に制限するためにすぐに使えます。
また、PublishPress Proバンドルで利用可能なプレミアムバージョンもあり、メディアライブラリにアクセスできる人のような、より多くの権限設定を提供しています。しかし、あなたは無料版から始めることができます。
まず、PublishPress Permissionsプラグインをインストールし、有効化する必要があります。詳しくはWordPressプラグインのインストール方法をご覧ください。
プラグインが有効化されると、投稿者とエディターを自動的に制限し、WordPressの管理エリアで自分の投稿だけを見ることができるようになります。
例えば、管理者としてログイン中、ダッシュボードから投稿 ” すべての投稿にアクセスすると、すべての投稿が表示されます。
しかし、投稿者のアカウントからWordPressの管理エリアにログインすると、投稿者が作成した投稿だけが表示されることに気づくだろう。
他のユーザーの投稿を見ることはできません。
では、エディターがすべての投稿にアクセスできるようにして、投稿をレビューできるようにしたい場合はどうすればよいでしょうか?その方法を見てみましょう。
エディターがすべての投稿を表示できるようにする
上記の方法の問題点は、管理者しかすべての投稿を表示できないことです。
多くのWordPressサイトでは、他の投稿者やゲスト寄稿者から送信された記事の校正を担当するエディターがいます。このプラグインを使うことで、エディターは自分の投稿のみに限定されます。
しかし、PublishPress Capabilitiesプラグインのようなプラグインを使用するか、サイトのテーマファイルにコードを追加することで、エディターが異なる投稿者のコンテンツをレビューできるようにすることができます。両方の方法を紹介します。
プラグイン「PublishPress Capabilities」を使用する
PublishPress CapabilitiesもPublishPressによって作成されたプラグインです。このチュートリアルでは、無料版を使用します。また、PublishPress Proアカウントを購読すると入手できるプロバージョンもあります。
まず、WordPressサイトにPublishPress Capabilitiesプラグインをインストールし、有効化する必要があります。WordPressプラグインのインストール方法については、ステップバイステップのガイドをご覧ください。
プラグインを有効化した後、WordPress管理メニューのCapabilitiesをクリックしてください。すると「権限グループ」ページが表示され、異なるユーザーロールの権限を変更することができます。
次に、左上のドロップダウンメニューから編集したいユーザー権限を選択します。
エディター」権限を選択したら、「編集機能」設定で「他人を編集する」のチェックボックスが有効化されていることを確認する必要があります。
これにより、エディターが他の投稿を編集できるようになります。
その後、「Additional Capabilities」セクションまでスクロールダウンし、「list others posts」チェックボックスが有効化されていることを確認する。
こうすることで、エディター権限を持つ人は誰でも他の投稿者の投稿を見ることができる。
設定を保存し、エディターとしてログインして投稿日: セクションを表示します。他の投稿者の投稿を表示、編集することができれば、正しく設定できたことになります。
テーマにカスタムコードを追加する
エディターがすべての投稿を表示できるようにするもう一つの方法は、テーマファイルにカスタムコードを追加することです。しかし、この方法はコードの編集を伴い、サイトを壊してしまう可能性があるため、初心者にはお勧めしません。
上級ユーザーは、テーマのfunctions.phpファイルにこのコードを手動で追加することができますが、WPCodeのようなコードスニペットプラグインを使用することをお勧めします。
WPCodeプラグインをインストールして有効化したら、WordPressダッシュボードのCode Snippets ” + Add Snippetページに移動する必要があります。
そこでマウスカーソルを「カスタムコードの追加(新規スニペット)」にオーバーさせ、表示される「+カスタム・スニペットの追加」ボタンをクリックします。
カスタムコードスニペットを追加するページが開きます。まず、「Allow Editors to View All Posts(エディターがすべての投稿を表示できるようにする)」のように、スニペットが何をするのかを説明するタイトルを付けます。
その後、次のコード・スニペットをコード・プレビュー・ペインに貼り付ける必要があります:
function posts_for_current_author($query) {
global $pagenow;
if( 'edit.php' != $pagenow || !$query->is_admin )
return $query;
if( !current_user_can( 'edit_others_posts' ) ) {
global $user_ID;
$query->set('author', $user_ID );
}
return $query;
}
add_filter('pre_get_posts', 'posts_for_current_author');
次に、ドロップダウン・メニューから「PHP Snippet」コードタイプを選択していることを確認してください。
最後に、’Active’設定をオンに切り替えてから、’Save Snippet’ボタンをクリックしてコードを保存し、有効化することを確認してください。
このコードにより、他人の投稿を編集できるユーザーであれば、すべての投稿を表示できるようになります。つまり、エディターや管理者はすべての投稿を見ることができます。投稿者や著者など他の権限を持つユーザーは、自分の投稿だけを見ることができます。
詳しくは、WordPressにカスタムコードを追加する方法をご覧ください。
あなたのサイトでカスタマイユーザ権限を使用している場合、他のユーザが追加した投稿を編集できるユーザもダッシュボードに表示されることに留意する必要があります。
ボーナス:投稿者に特定の投稿やページの表示を制限する。
また、投稿者、エディター、寄稿者、その他のユーザー権限グループに特定のブログ投稿やページの表示、編集、削除を制限することもできます。
PublishPressの権限プラグインを使用することで、サイトのダッシュボードで閲覧できる投稿やページを簡単に決めることができます。
まず始めに、サイトにPublishPress Permissionsプラグインをインストールし、有効化してください。WordPressプラグインのインストール方法についてはチュートリアルをご参照ください。
例えば、特定の投稿をサイトのエディターだけが編集でき、他の人は編集できないとします。
そのためには、投稿を編集します。WordPressのブロックエディターに入ったら、「権限」までスクロールダウンするだけです:この投稿を編集する」メタ情報までスクロールします。
次に、他のすべてのユーザー権限のドロップダウンメニューをクリックし、’ブロック’オプションを選択する必要があります。初期設定では、権限は’default: Yes’に設定され、誰でも投稿を編集できるようになります。
その後、エディターの設定を「有効化」または「初期設定:はい」のままにしておくことを確認してください。権限を設定したら、ブログ投稿を更新してください。
WordPressのユーザー権限グループの変更に関するエキスパートガイド
この投稿が、WordPressの管理エリアで投稿者を自分の投稿に限定する方法を学ぶのにお役に立てば幸いです。WordPressのユーザー権限グループの変更に関する他の投稿もご覧ください:
- WordPressでユーザー権限グループに機能を追加・削除する方法
- 初心者向けWordPressユーザー権限グループガイド
- 用語集ユーザー権限
- WordPressの投稿を承認後に寄稿者に編集させる方法
- WordPressでエディターが特定のページだけを編集できるようにする方法
- カテゴリー:WordPressで投稿者が投稿を削除しないようにする方法
- カテゴリー:WordPressで公開する投稿者にリビジョンを許可する方法
- WordPressでメディアライブラリへのアクセスをユーザー自身のアップロードに制限する方法
- WordPressでブログユーザーにコメントを管理させる方法
- WordPressでユーザーがコメントを編集できるようにする方法
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Abu-Bakr Sediq
Hello there, I really enjoy this website! I have a question. How to rescrict (limit, Hide) specific options or feature while Author Post New Product or Add News post. To be more clear; How to limit user from some option in “Add New Post” while publishing post. Sorry for my very bad English
WPBeginner Support
If you want to limit the options for a post’s author based on their role, you would want to take a look at our guide below!
https://www.wpbeginner.com/beginners-guide/wordpress-user-roles-and-permissions/
管理者
Lee
Hi there!
Thank you for this great article.
Can I use the Permissions plug in without the Capabilities plug in?
Or does the capabilities plug in work as a ‘base’ for the Permissions one, and they must be used together?
WPBeginner Support
You can use one without the other, they modify different options available to the different user levels.
管理者
lionel
what happens when I remove the plugin? will any changes be removed too and will all users go back to the defaults or will those users require special attention to have PublishPress roles removed? thanks!
WPBeginner Support
If you remove the plugin it would revert the settings from the plugin.
管理者
Eslam Magdy
Thank u so much man!,,, thanks work for me
WPBeginner Support
Glad our article was able to help!
管理者
Ignazio
You are really great and I congratulate you. If I may, I would like to ask you something. If I wanted to modify this code to make the posts limited in view and edit only to their author as far as drafts are concerned?
WPBeginner Support
For what you are wanting, you may want to modify the role permissions or give permissions, you would want to take a look at our article below on permissions:
https://www.wpbeginner.com/beginners-guide/wordpress-user-roles-and-permissions/
管理者
Naomi Blindeman
Thank you! Lifesaver!
WPBeginner Support
You’re welcome
管理者
Dan D
Exactly what I was looking for. No custom code was needed.
WPBeginner Support
Glad our guide was helpful
管理者
Guto Rockwell
Works like a charm, many thanks
WPBeginner Support
Glad our guide could help
管理者
Zakaria
Your code working perfectly. Thanks!!!
WPBeginner Support
You’re welcome
管理者
Noriel
Your recommended plugin is already outdated, any other reliable plugin?
WPBeginner Support
This article was last updated in 2015, we will be sure to look for an alternative and update this article when we are able.
管理者
Fernando Aureliano
It works for all post types?
WPBeginner Support
If you’re using the plugin you would need to reach out to the plugin’s support for that specific question.
管理者
Davood Denavi
Does the code mentioned in this article work with all post types? I have some custom post types on a clients site and the plugin worked we do not have time to test the site right now after adding more code and we are trying to allow editors to view all posts.
Thank in advance for your help!
Gulshan Kumar
How to filter out comments according to currently logged in user?
I want to restrict listing of all comments for the contributor. I want to allow showing and moderation option only for those posts which belong to them.
Rohit Mewada
Same question, how hide comment also from other user.
Brandon Evans
Does this plugin include hiding of “pages” from non-authors? I see everything listed here says posts but would pages be included in that? Our site uses pages more than posts.
Ravijit
How to hide comments from contributers in wordpress dashboard ???
Tom
Hey there,
is there a way to exclude specific Post Types from that query ?
regards Tom
Sam
What if i have multiple admin and i want admin’s can see only their posts ??
barisla
very useful thanks
Charlie
Works great. The other problem I have is that it still displays the post count for other users. So for example there are 105 published posts even if the current user only has 2 published posts.
Any idea how to rectify this?
Sherwin Ramnarine
I realise this is months later so I guess the reply is really for others with the same problem. Try adding this to your functions.php. Think I got it on Wordpress.StackExchange.com >>
// Remove Post Counts
// Create a specific hook
add_filter(“views_edit-post”, ‘custom_editor_counts’, 10, 1);
function custom_editor_counts($views) {
// var_dump($views) to check other array elements that you can hide.
unset($views[‘all’]);
unset($views[‘publish’]);
unset($views[‘pending’]);
unset($views[‘trash’]);
return $views;
}