[Wordpress] How to make sure that only admins and authors (posts) can view posts

【WordPress】投稿を管理者と作者(投稿した人)だけが表示できるようにする方法

公開日: 使い方など
Knowledge Base メンテナンス

WordPressは基本的にアクセスした人全員が見えるコンテンツを作るためのホームページ作成ツール(CMS)。そこにベーシック認証をかけたり、ログインしていないと閲覧できないサイトにする方法はいろいろあり、検索すると容易に尋ね当たります。

この方法では会員制サイトなどで、ログインしたユーザー以外はサイトの中を表示できないものの、基本的にはログインしたユーザーであればサイト内の記事はすべて表示されてしまいます。

例えばユーザーサポートサイトなどを作って、ユーザーからの質問投稿に対してその後はカスタマイズしたコメント欄を使ってやり取りするという方法が一番なのですが、それだとログインユーザーには質問もやり取りもすべて見えてしまって具合が悪いですよね??

これを解消しようとすると、次に浮かぶのがユーザーと直接やり取りする方法としては問い合わせフォームを作り、あとはメールでのやりとりをするという方法。まあ多分一番それが無難なのかも知れないですけど、質問(問い合わせ)をもらった後のやり取りはすべてメール対応となる(サイトから離れてしまう)ので、やり取りが少ないうちはいいのですが、増えてくると特に管理者側は何が何だか分からない状況にもなりかねません。

何かいい方法はないの??と検索してみましたが、日本語での検索ではなかなかそれらしいものはありませんでした。そこでこうなったらWorld Wideに頼ろう!!ということで英語圏のサイトも含めて探したところ、簡単なコードで実現できることが発覚!!

コード自体は後述するサイトのコードの関数名を変えただけのほぼコピペになってしまいますが、方法を探している方にとっては非常に有用な情報であり、私のサイト制作の幅を広げる意味でも重要な情報でしたので、コードを含めて紹介したいと思います。

このコードを使用する際の前提事項

後で簡単に解説しますが、コード自体はログインした前提で出力に制限をかけるものになりますから、ログインしていないユーザーについてはすべての記事が見えてしまうことになります。

従って、コードを改造して非ログインユーザーにも表示しないようにするか、

などを使ってサイトへのアクセスに対してログインを必須にするという措置が必要となります。

「AMP(Accelerated Mobile Pages)」についての勉強メモ

【WordPress】Simplicityテーマのヘッダー画像の高さをカスタマイズする方法

コアサーバーでのWordPressパーマリンク変更について


投稿を管理者と作者(投稿した人)だけが表示できるようにするコード

コード元は

ですので、詳しい解説はそちらをご覧ください。

/********** 管理者と投稿したユーザーのみ表示可能にするコード **********/
function habt_set_only_author($query) {
	global $current_user;
	if (!current_user_can('manage_options')) {
		$query->set('author', $current_user->ID);
	}
}
add_action('pre_get_posts', 'habt_set_only_author');

コード内容を簡単に説明するとpre_get_postsというフックを使って、投稿が表示される前に投稿者IDをチェックして、そのIDと合致するユーザーと、サイト管理者(厳密には「manage_options」権限を持つユーザー=管理者権限を持つユーザー)にだけ投稿を表示するというコードになります。

ユーザー権限については

(公式コーデックス)に一覧がありますので、編集者まで、投稿者まで・・・など別の動きをさせる場合には変更するといいでしょう。

このコードをテーマのfunctions.phpへ追記するだけで機能します。

functions.php??というレベルの方は何か起きた時に対処ができない可能性がありますのでこの方法はおすすめしません

複数のユーザーを作り、それぞれから投稿が見えるかどうか?管理者だったらどうか?など私のテスト環境で行った試行ではうまく動作しましたが、実際のサイトへ使用する際にはよくチェックを行ってから導入するようにしてください(不具合や不都合が生じても一切責任は負いませんのでご了承ください)。
ひまあーと(管理人)
  • 記事の作者: ひまあーと(管理人)

  • ☆最後までお読みいただきありがとうございました。記事作者のひまあーとです。
    ☆Wordpressでサイトをカスタマイズしていく上で有用な情報を配信しつつ、「ココナラ」でサイトカスタマイズのお手伝い、不具合の修復、サイト引っ越し代行などをさせていただいております。
    ☆Wordpressネタが多いですが、趣味の「園芸」「卓球」などの情報や日々の出来事などもどんどん増やしていきますのでよろしくお願いいたします。


いつでもご相談・サイトカスタマイズの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】


記事の拡散にご協力をお願いします

閲覧いただきありがとうございました。役に立つ情報でしたら是非SNSでシェアをお願いします

関連情報