最も必要とされている時に、信頼できるWordPressチュートリアルを。
WordPress初心者ガイド
WPBカップ
2500万以上
当社のプラグインを使用しているウェブサイト
16+
年のWordPress経験
3000+
専門家によるWordPressチュートリアル

WordPressループからパスワード保護された投稿を非表示にする方法

パスワード保護された投稿は非表示になるはずですが、WordPressはブログリスト、アーカイブ、検索結果にタイトルを表示します。誰かがクリックしてパスワード画面に遭遇すると、混乱を招く可能性があります。

これは特にコンテンツがクライアント、メンバー、または内部使用のみを目的としている場合、最良の印象を与えません。😓

良いニュースは、これらの投稿をWordPressループ(ホームページ、アーカイブ、検索結果に表示される投稿リスト)から完全に非表示にできることです。当社のテストでは、WPCodeがこれを完了するための最も簡単で信頼性の高い方法であることがわかりました。

このガイドでは、プライベートコンテンツを本当にプライベートに保つための簡単な方法をいくつかご紹介します。サイトを壊したり、実際に必要としている人々のアクセスをブロックしたりすることなく、パスワード保護された投稿を削除できるように、さまざまな方法をテストしました。

WordPressループからパスワード保護された投稿を非表示にする方法

WordPressでパスワード保護された投稿を非表示にする理由

WordPressは、コンテンツ自体はロックされているにもかかわらず、「保護済み」というラベルを付けてサイト全体にパスワード保護された投稿を表示します。特定のコンテンツを完全にプライベートにしたい場合は、これは問題です。

パスワードを持っていない人でもタイトルを見ることができ、意図した以上の情報が明らかになる可能性があります。また、コンテンツを期待して投稿をクリックしたものの、パスワードプロンプトが表示された訪問者を混乱させる可能性もあります。

ホームページに表示されるパスワード保護された投稿

それに加えて、これらの投稿は望まない注目を集める可能性があります。タイトルが表示されるため、誰かがアクセスを得ようと繰り返しさまざまなパスワードを試す可能性があります – 特にコンテンツが価値があるか機密性が高いように見える場合。

そのため、多くのサイト所有者は、パスワードで保護された投稿をWordPressループから完全に非表示にすることを選択します。これを実行すると、アクセス権を持つ人がいない限り、プライベート投稿はフロントエンドのどこにも表示されなくなります。

これを念頭に置いて、パスワードで保護された投稿をWordPressループから非表示にして、他のユーザーに見られないようにする方法を説明します。実行するすべての手順を簡単に見てみましょう。

早速始めましょう!

ステップ1.コードスニペットプラグインをインストールする

サイトに特定の変更を加えるために、一部のWordPress専門家は、テーマのfunctions.phpファイルにカスタムコードスニペットを追加するように勧めるかもしれません。

この方法は初心者にはあまり優しくなく、ウェブサイトを壊すリスクがあるため、お勧めしません。代わりに、WPCodeのようなコードスニペットプラグインを使用して、この作業を行うことができます。

WPCodeは、市場で最高のコードスニペットプラグインです。私たちのパートナーブランドの中には、これを使用してウェブサイトにカスタムコードスニペットを追加および管理しており、彼らはそれを気に入っています。

プラグインの詳細については、WPCodeの完全レビューをご覧ください。

WPCodeのホームページ

🧑‍💻専門家のヒント:このチュートリアルは、WPCodeの無料版で完全に機能します。複数のカスタムコードスニペットを定期的に追加または管理する場合、WPCode Proにアップグレードすると、コードのスケジュール設定、完全な改訂履歴など、便利な追加機能を利用できます。

まず、WPCodeプラグインをインストールして有効化してください。

WordPressダッシュボードから、プラグイン » 新規プラグインを追加に移動します。

WordPress管理画面の[プラグイン]の下にある[新規追加]サブメニュー

次の画面で、検索バーを使用してWPCodeを検索できます。

結果に表示されたら、「今すぐインストール」ボタンをクリックし、次に「有効化」をクリックしてサイトでのプラグインの使用を開始します。

WPCodeのインストール

WordPress初心者の方は、WordPressプラグインのインストール方法に関するガイドをご覧ください。

ステップ2.WordPressでパスワードで保護された投稿を非表示にする

プラグインを有効化したら、WordPress管理エリアからコードスニペット » + スニペットを追加に移動します。

次に、「カスタムコードを追加(新規スニペット)」セクション内の「カスタムスニペットを追加」ボタンをクリックするだけです。

WPCodeでのカスタムコードの追加

次の画面で、カスタムスニペットのコードタイプを選択する必要があります。

このチュートリアルでは、「PHPスニペット」オプションを使用する必要があります。

コードタイプとして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のビデオチュートリアルのためにYouTubeチャンネルに登録してください。TwitterやFacebookでもフォローできます。

開示:私たちのコンテンツは読者によってサポートされています。これは、私たちのリンクのいくつかをあなたがクリックした場合、私たちは手数料を得る可能性があることを意味します。WPBeginnerがどのように資金提供されているか、なぜそれが重要なのか、そしてあなたが私たちをどのようにサポートできるかを見てください。こちらが私たちの編集プロセスです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者のやり取り

17 CommentsLeave a Reply

  1. メインフィードではうまくいきました。ありがとうございます!マーク(数コメント上)と同じような問題を抱えていますが、最近の投稿ウィジェットで問題が発生しています。PW保護された投稿が最近の投稿リストに表示されます。

      • いいえ、なぜですか?このスニペットは、最近の投稿ウィジェットからもそれらを非表示にする必要がありますか?

        • パスワード保護された投稿を最近の投稿ウィジェットに表示しないようにします。サイトにキャッシュがある場合は、ウィジェットのキャッシュされた情報を表示している可能性があるため、必ずクリアしてください。もう1つの可能性は、当社のコード以外のものがウィジェットが使用しているクエリを変更していることです。

  2. コードで*実際に*どのように行うかを説明していただきありがとうございます。「wpbeginner.com」という名前のサイトからは予想していませんでした!(ちなみに2024年とWP 6.5.2でも動作します。)

    多くのサイトがソリューションを提供しているように見せかけていますが、実際には単純なことを過度に複雑にし、パッチが適用されない可能性のある脆弱性に対してサイトをさらけ出すプラグインを使用させたいだけです。

    • 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 :)

      管理者

  3. 皆さん、本当にありがとうございます。大変助かりました。感謝しています。プラグインを使わないこのような投稿をもっと続けてください。

    • プラグイン不要のソリューションが利用可能になったら、必ず含めるように努めます。

      管理者

  4. サイト固有のプラグインを作成し、これらの手順に従ったところ、サイトの「投稿」ページで投稿を非表示にすることができました。しかし、個々の投稿の関連投稿ウィジェットでは、その投稿は引き続き表示されています。(上記の画像と非常によく似ていますが、パスワードで保護された投稿は引き続き表示されています。)

    これを修正するために何かできることはありますか?

  5. 投稿を読み取れる場合は投稿を表示するように、独自のコード調整を行いたいと思いました。

    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’ );

    いつものように素晴らしい投稿です。ありがとう。

  6. こんにちは皆さん

    以下のコードでサイト固有のプラグインを作成しました。

    投稿にNextGENギャラリーを添付しようとすると、ギャラリーが読み込まれません。プラグインを無効にするとすぐに、NextGENギャラリーは通常の状態に戻ります。

    よろしくお願いいたします

  7. このスニペットをありがとうございます。とても参考になりました!

    これらの投稿を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');

  8. 素晴らしいヒントをありがとうございます!
    しかし、あなたのコードスニペットでループから非表示になっているこれらの投稿は、RSSフィードからも非表示になりますか?

    • 単一のテストに基づくと、パスワード保護された投稿はRSSフィードから非表示になります。

返信する

コメントを残していただきありがとうございます。すべてのコメントは、当社のコメントポリシーに従ってモデレーションされることに注意してください。メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で意味のある会話をしましょう。