パスワード保護された投稿は非表示になるはずですが、WordPressはブログリスト、アーカイブ、検索結果にタイトルを表示します。誰かがクリックしてパスワード画面に遭遇すると、混乱を招く可能性があります。
これは特にコンテンツがクライアント、メンバー、または内部使用のみを目的としている場合、最良の印象を与えません。😓
良いニュースは、これらの投稿をWordPressループ(ホームページ、アーカイブ、検索結果に表示される投稿リスト)から完全に非表示にできることです。当社のテストでは、WPCodeがこれを完了するための最も簡単で信頼性の高い方法であることがわかりました。
このガイドでは、プライベートコンテンツを本当にプライベートに保つための簡単な方法をいくつかご紹介します。サイトを壊したり、実際に必要としている人々のアクセスをブロックしたりすることなく、パスワード保護された投稿を削除できるように、さまざまな方法をテストしました。

WordPressでパスワード保護された投稿を非表示にする理由
WordPressは、コンテンツ自体はロックされているにもかかわらず、「保護済み」というラベルを付けてサイト全体にパスワード保護された投稿を表示します。特定のコンテンツを完全にプライベートにしたい場合は、これは問題です。
パスワードを持っていない人でもタイトルを見ることができ、意図した以上の情報が明らかになる可能性があります。また、コンテンツを期待して投稿をクリックしたものの、パスワードプロンプトが表示された訪問者を混乱させる可能性もあります。

それに加えて、これらの投稿は望まない注目を集める可能性があります。タイトルが表示されるため、誰かがアクセスを得ようと繰り返しさまざまなパスワードを試す可能性があります – 特にコンテンツが価値があるか機密性が高いように見える場合。
そのため、多くのサイト所有者は、パスワードで保護された投稿をWordPressループから完全に非表示にすることを選択します。これを実行すると、アクセス権を持つ人がいない限り、プライベート投稿はフロントエンドのどこにも表示されなくなります。
これを念頭に置いて、パスワードで保護された投稿をWordPressループから非表示にして、他のユーザーに見られないようにする方法を説明します。実行するすべての手順を簡単に見てみましょう。
早速始めましょう!
ステップ1.コードスニペットプラグインをインストールする
サイトに特定の変更を加えるために、一部のWordPress専門家は、テーマのfunctions.phpファイルにカスタムコードスニペットを追加するように勧めるかもしれません。
この方法は初心者にはあまり優しくなく、ウェブサイトを壊すリスクがあるため、お勧めしません。代わりに、WPCodeのようなコードスニペットプラグインを使用して、この作業を行うことができます。
WPCodeは、市場で最高のコードスニペットプラグインです。私たちのパートナーブランドの中には、これを使用してウェブサイトにカスタムコードスニペットを追加および管理しており、彼らはそれを気に入っています。
プラグインの詳細については、WPCodeの完全レビューをご覧ください。

🧑💻専門家のヒント:このチュートリアルは、WPCodeの無料版で完全に機能します。複数のカスタムコードスニペットを定期的に追加または管理する場合、WPCode Proにアップグレードすると、コードのスケジュール設定、完全な改訂履歴など、便利な追加機能を利用できます。
まず、WPCodeプラグインをインストールして有効化してください。
WordPressダッシュボードから、プラグイン » 新規プラグインを追加に移動します。
![WordPress管理画面の[プラグイン]の下にある[新規追加]サブメニュー WordPress管理画面の[プラグイン]の下にある[新規追加]サブメニュー](https://www.wpbeginner.com/wp-content/uploads/2025/02/wp-plugins-addnew.png)
次の画面で、検索バーを使用してWPCodeを検索できます。
結果に表示されたら、「今すぐインストール」ボタンをクリックし、次に「有効化」をクリックしてサイトでのプラグインの使用を開始します。

WordPress初心者の方は、WordPressプラグインのインストール方法に関するガイドをご覧ください。
ステップ2.WordPressでパスワードで保護された投稿を非表示にする
プラグインを有効化したら、WordPress管理エリアからコードスニペット » + スニペットを追加に移動します。
次に、「カスタムコードを追加(新規スニペット)」セクション内の「カスタムスニペットを追加」ボタンをクリックするだけです。

次の画面で、カスタムスニペットのコードタイプを選択する必要があります。
このチュートリアルでは、「PHPスニペット」オプションを使用する必要があります。

その後、カスタムコードスニペットエディタにリダイレクトされます。
ここから、まずカスタムスニペットに名前を付けたいと思います。後でカスタムコードスニペットを整理しやすくするために、「パスワードで保護された投稿を非表示にする」のような明確な名前を使用することをお勧めします。
次に、次のコードを「コードプレビュー」ボックスに追加するだけです。
function wpb_password_post_filter( $where = '' ) {
if (!is_single() && !is_admin()) {
$where .= " AND post_password = ''";
}
return $where;
}
add_filter( 'posts_where', 'wpb_password_post_filter' );
このコードは、WordPressにパスワードを持つ投稿を探し、クエリから除外するように指示します。これにより、ホームページやアーカイブのようなリストに表示されなくなりますが、直接リンクからは引き続きアクセスできます。
エディタでの表示は次のようになります。

この時点で、「非アクティブ」スイッチを「アクティブ」に切り替える必要があります。
次に、「スニペットを保存」をクリックします。

デフォルトでは、WPCodeはコードスニペットをWordPressサイトのすべての場所に自動的に適用します。
これで、ウェブサイトにアクセスすると、パスワードで保護された投稿がホームページ、アーカイブ、または最近の投稿のようなウィジェットに表示されなくなっていることがわかります。

直接URLからアクセスすることで、投稿にアクセスできることに注意してください。
ボーナスのヒント:特定のユーザーに保護された投稿へのアクセスを許可する
上記の例では、パスワードで保護された投稿をすべてのユーザーから非表示にしています。しかし、マルチアザーWordPressサイトを運営していて、保護された投稿を、プライベート投稿を編集する権限を持つユーザーが表示できるようにしたい場合はどうでしょうか?
これを行うには、前のステップで作成したスニペットを編集する必要があります。追加したコードを削除し、この新しいスニペットに置き換えてください。
function wpb_password_post_filter( $where = '' ) {
if (!is_single() && !current_user_can('edit_private_posts') && !is_admin()) {
$where .= " AND post_password = ''";
}
return $where;
}
add_filter( 'posts_where', 'wpb_password_post_filter' );
この例では、ユーザーがプライベート投稿を編集できないかどうかを確認し、パスワードを持たない投稿のみを表示します。
これにより、管理者およびエディターロールを持つすべてのWordPressユーザーは、サイトのフロントエンドでパスワードで保護された投稿を表示できるようになります。
WordPressでパスワードで保護された投稿を非表示にすることに関するFAQ
パスワードで保護された投稿を非表示にするとどうなるか疑問に思っていませんか?読者からよく寄せられる質問と、このアプローチがあなたのサイトに適しているかどうかを判断するのに役立つ明確な回答を以下に示します。
WordPressでパスワードで保護された投稿を非表示にしたいのはなぜですか?
パスワードで保護された投稿を非表示にすると、サイトがすっきりとプロフェッショナルに見えます。また、不正な訪問者がプライベートコンテンツの存在を知るのを防ぎ、アクセス試行のリスクを軽減し、サイトをより安全に保ちます。
パスワードで保護された投稿を非表示にするためにテーマファイルを編集する必要がありますか?
いいえ、テーマファイルを直接編集する必要はありません。カスタムコードスニペットを使用できます。WPCodeのようなプラグインを使用すると、サイトを壊すことなく安全かつ簡単にコードを追加できます。
これらの投稿を非表示にすることは、承認されたユーザーの可視性に影響しますか?
いいえ、まったく影響しません。ログイン中のメンバーや特定のロールを持つユーザーなど、承認されたユーザーは、正しいパスワードまたは権限を持っている限り、直接投稿にアクセスできます。
WPCodeはこの点で役立つ唯一のプラグインですか?
WPCodeは最も簡単で信頼性の高いオプションの1つであるため、推奨しています。ただし、他にも利用可能なプラグインがあります。テーマやその他のツールと互換性があり、適切にメンテナンスされているものを選択してください。
パスワードで保護された投稿を非表示にすることは、サイトのSEOに影響しますか?
これらの投稿をホームページやアーカイブから非表示にしても、SEOに悪影響はありません。実際、公開されているコンテンツを検索エンジンにとってより焦点を絞り、関連性の高いものにすることで、SEOを改善できます。
WordPressメンバーシップサイトの管理に役立つその他のガイド
この記事がお使いのサイトでWordPressループからパスワード保護された投稿を非表示にするのに役立ったことを願っています。
以下のチュートリアルも参照してください。
- WordPressでログインユーザーに異なるメニューを表示する方法
- WordPressでプライベート投稿と保護された投稿のプレフィックスを変更する方法
- WordPressでパスワード保護された投稿の抜粋を表示する方法
- WordPressアーカイブページでの全投稿と概要(抜粋)の違い
- WordPressでコンテンツを保護するさまざまな方法
この記事が気に入ったら、WordPressのビデオチュートリアルのためにYouTubeチャンネルに登録してください。TwitterやFacebookでもフォローできます。

Abby Buzon
メインフィードではうまくいきました。ありがとうございます!マーク(数コメント上)と同じような問題を抱えていますが、最近の投稿ウィジェットで問題が発生しています。PW保護された投稿が最近の投稿リストに表示されます。
WPBeginnerサポート
最近の投稿ウィジェットの動作を変更するプラグインをお持ちですか?
管理者
Abby Buzon
いいえ、なぜですか?このスニペットは、最近の投稿ウィジェットからもそれらを非表示にする必要がありますか?
WPBeginnerサポート
パスワード保護された投稿を最近の投稿ウィジェットに表示しないようにします。サイトにキャッシュがある場合は、ウィジェットのキャッシュされた情報を表示している可能性があるため、必ずクリアしてください。もう1つの可能性は、当社のコード以外のものがウィジェットが使用しているクエリを変更していることです。
デビッド・ブラウン
コードで*実際に*どのように行うかを説明していただきありがとうございます。「wpbeginner.com」という名前のサイトからは予想していませんでした!(ちなみに2024年とWP 6.5.2でも動作します。)
多くのサイトがソリューションを提供しているように見せかけていますが、実際には単純なことを過度に複雑にし、パッチが適用されない可能性のある脆弱性に対してサイトをさらけ出すプラグインを使用させたいだけです。
WPBeginnerサポート
It would depend on the site and plugin as plugins can be for simply adding the same code as code from an article without needing to know how to edit files which is why sites recommend them. Glad you found our site and guide helpful
管理者
ラフル・ラナ
This was very helpful. Thank you very much
WPBeginnerサポート
どういたしまして、ガイドがお役に立てて嬉しいです!
管理者
ビンセント・チャン
皆さん、本当にありがとうございます。大変助かりました。感謝しています。プラグインを使わないこのような投稿をもっと続けてください。
WPBeginnerサポート
プラグイン不要のソリューションが利用可能になったら、必ず含めるように努めます。
管理者
ルイス・バークハート
ありがとう。うまく機能します。
マーク
サイト固有のプラグインを作成し、これらの手順に従ったところ、サイトの「投稿」ページで投稿を非表示にすることができました。しかし、個々の投稿の関連投稿ウィジェットでは、その投稿は引き続き表示されています。(上記の画像と非常によく似ていますが、パスワードで保護された投稿は引き続き表示されています。)
これを修正するために何かできることはありますか?
アレックス
投稿を読み取れる場合は投稿を表示するように、独自のコード調整を行いたいと思いました。
function remove_password_protected_posts( $where = ” ) {
if (!is_single() && !current_user_can(‘read_private_posts’) && !is_admin() ) {
$where .= ” AND post_password = ””;
}
return $where;
}
add_filter( ‘posts_where’, ‘remove_password_protected_posts’ );
いつものように素晴らしい投稿です。ありがとう。
ハリン
こんにちは皆さん
以下のコードでサイト固有のプラグインを作成しました。
投稿にNextGENギャラリーを添付しようとすると、ギャラリーが読み込まれません。プラグインを無効にするとすぐに、NextGENギャラリーは通常の状態に戻ります。
よろしくお願いいたします
ブランドン
このスニペットをありがとうございます。とても参考になりました!
これらの投稿をRSSフィードから非表示にすることに関して、このスニペットを見つけました。
function rss_filter_protected($query) {
if ($query->is_feed) {
add_filter('posts_where', 'rss_filter_password_where');
}
return $query;
}
add_filter('pre_get_posts','rss_filter_protected');
クリス
素晴らしいヒントをありがとうございます!
しかし、あなたのコードスニペットでループから非表示になっているこれらの投稿は、RSSフィードからも非表示になりますか?
ルイス・バークハート
単一のテストに基づくと、パスワード保護された投稿はRSSフィードから非表示になります。