WordPressページへのアクセスを制限し、メンバーエリアを作成する
公開: 2016-02-10プレミアムコースや情報製品の公開をお探しですか? WordPressのコンテンツを、料金を支払っている読者/メンバーだけに制限したい場合があります。 そして、一般の訪問者のためにコンテンツを非表示にします。 WordPressを使用すると、さまざまなコンテンツ制限を使用してこのような情報を簡単に保護できます。つまり、WordPressは、箱から出してすぐに、またはプラグインを使用してサポートします。
この記事では、これらのさまざまな方法について説明します。 議論します:
- パスワードで保護されたページとプライベートページの違い(および2つのソリューションが不十分な場合)
- WordPressサイトに簡単なメンバーエリアを作成するための2分間のハック(プラグインを使用せずに)
- ナレッジベースの記事をメンバーエリアに表示する(このセクションは、KnowAllテーマまたはHeroicナレッジベースソリューションを使用している場合に使用します)
- サイトのページ、投稿、その他のコンテンツへのアクセスを制御するのに役立つ無料のプラグイン
パスワードで保護されたコンテンツとプライベートコンテンツの違いを理解することから始めましょう。
Heroicナレッジベースを使用して、検索可能なプライベートナレッジベースを簡単に構築できます。
プラグインを入手するパスワードで保護されたものとプライベートなもの
特定のページ(または他の投稿コンテンツ)へのアクセスを制限する最も簡単な方法は、WordPressがデフォルトで提供するさまざまな「可視性」設定を使用することです。
これらのオプションは、新しいページや投稿を追加する場所の右側のパネルにあります。

[表示]設定には、ページ(または投稿)の表示に関する3つのオプションがあります。
- 公開–このデフォルト設定では、すべてのサイト訪問者がコンテンツを利用できます
- パスワードで保護–ここでは、ページ(または投稿)のパスワードを持つ読者のみがコンテンツへのアクセスのロックを解除できます
- プライベート–このオプションは、特定のユーザーの役割に基づいてアクセスを許可します
2番目と3番目の表示オプションを使用すると、特定のコンテンツを制限できます。
方法を見てみましょう:
1.ページ/投稿を保護するパスワード
これは非常に簡単なオプションであり、個々のページや投稿にパスワードを割り当てるだけで、そのページや投稿をパスワードで保護することができます。
パスワードを知っている人なら誰でもコンテンツにアクセスできます。
現在、このオプションは、一般の人から隠したいページが1つか2つある場合に機能します。 ただし、保護する記事が数百ある場合は、対象となるすべての読者に数百のパスワードを保持して配布する必要があることを想像できます。
この方法のもう1つの問題は、ユーザーがそのようなコンテンツを見つけたり、そのようなパスワードで保護されたページへのリンクをクリックしたりすると、パスワードを要求する画面が表示されるため、サイトに保護されたコンテンツまたは排他的なコンテンツがあることがわかることです。 。 したがって、アクセス権のない人にこのコンテンツについて学習させたくない場合、この方法では目的を解決できません。
次のスクリーンショットは、パスワードで保護されたリソースの例を示しています。

さらに、ページを表示する権限がない場合、ページをパスワードで保護しても、そのページはWebサイトから削除されません。 代わりに、「保護された: 」という単語がタイトルの先頭に追加されます。これには用途がありますが、Webサイトにプライベートコンテンツがあることを人々に知られたくない場合は理想的ではありません。

2)ページ/投稿を非公開にする
プライベートページでは、ロックを解除するために個別のパスワードは必要ありません。 このようなページへのアクセスは、ユーザーの役割を確認した後に許可されます。 通常、このようなプライベートページを表示できるのはサイト管理者または編集者のみです。
プライベートとマークされたページは次のようになります。

パスワードで保護されたページとプライベートページのもう1つの大きな違いは、ページを表示するための十分な権限がない場合、ページはWebサイトのどこにも表示されないことです。
これは、平均的なWebサイト訪問者に、Webサイトに追加のコンテンツがあることを知られたくない場合に特に役立ちます。

それは明らかだ:
2つのオプションのうち、サイトの多くのコンテンツを制限する場合は、非公開の可視性設定のみが意味をなします。
ただし、おわかりのように、サイトのすべてのユーザーに管理者レベルまたは編集者レベルのアクセスを許可することはできません。 つまり、別のメンバーシップレベル(サブスクライバー)を導入する必要があります。 次に、プライベートページの可視性レベルをサブスクライバーの可視性レベルに設定します。 このようにして、すべてのサブスクライバーがすべての制限されたコンテンツにアクセスできるようになります。
メンバーエリアを設定して、このシンプルなアクセスシステムを実装する方法は次のとおりです。
シンプルなメンバーエリアの作成
まず、メンバーだけが利用できるページのセットを作成します。 これらすべてのページを非公開にします。
これを行うには、テーマのfunctions.phpファイルに新しい関数とアクションを追加する必要があります。
したがって、テーマのfunctions.phpファイルに移動し、次のコードを追加します。
/**
* Add read_private_posts capability to subscriber
* Note this is saves capability to the database on admin_init, so consider doing this once on theme/plugin activation
*/
add_action ('admin_init','add_sub_caps');
function add_sub_caps() {
global $wp_roles;
$role = get_role('subscriber');
$role->add_cap('read_private_posts');
}これは、サブスクライバーロールに割り当てられた機能(権限)を変更して、非公開の投稿を読み取る機能を含めることだけです。 これは1回限りのアクションであるため、テーマ/プラグインのアクティブ化で実行するか、完了したらコードをコメントアウトすることをお勧めします。 add_capに関するCodexのガイダンスノートを参照してください。 また、この機能を削除する場合は、remove_cap関数を使用するようにコードを変更する必要があります。

メンバーエリアのログイン設定
メンバーエリアの準備ができたので、サブスクライバーが簡単にサインインできるようにします。もちろん、ユーザーはyourwebsite.com/wp-login.phpリンクを使用できますが、これはそうではないことに同意するでしょう。非常にユーザーフレンドリー。
ユーザーフレンドリーなログインボックスを設定するには、ログインページスタイラープラグインを使用できます。
ログインページスタイラーを使用すると、WordPressサイトのログインページをデザインできます。 「ログイン」という項目をメインメニューに追加し、ログインページスタイラーで設計されたカスタムログインページにリンクするだけです。
他にもいくつかのプラグインがありますが、それらのほとんどは少なくとも1年間更新されていないため、使用する前に必ず互換性を確認してください。
使いやすいログイン画面を介してサブスクライバーがプライベートコンテンツを利用できるようにしたら、完了です。
次のセクションでは、ナレッジベースの記事(Heroic Knowledge Baseを利用)をメンバーエリアに表示する方法を説明します。
メンバーエリアにHeroicナレッジベースの記事を含めるようにする
KnowAllテーマまたはHeroicナレッジベースプラグインを使用してWebサイトのナレッジベースを強化すると、メンバーエリアでサブスクライバーがサポートコンテンツにアクセスできるようになります。
Advanced CustomFieldsプラグインをインストールすることから始めます。
以前は、「製品オプション」というカスタムフィールドグループを作成していました。
このチュートリアルでは、「製品オプション」の名前を「ナレッジベースカテゴリ」に変更します。次に行うことは、このグループを編集して、ページと投稿の両方を含めることです。 現在、カスタムフィールドは、投稿タイプが商品の場合にのみ表示されるように設定されています。 しかし、今はそれをページにも適用できるようにしたいと思っています。
これを行うには、管理者の[カスタムフィールド]に移動し、[製品オプション]を編集します。

設定したら、有料会員のみが利用できるようにするナレッジベースの記事を作成します。 これらのページをすべてプライベートに設定して、直接アクセスできないようにします。 それらをカテゴリ、たとえば「制限付きコンテンツカテゴリ」に割り当てます。 後で、このカテゴリを選択して、制限されたページに表示することができます。

最後のステップは、page.phpファイルを修正して、選択したカテゴリを表示することです。
これを行うために、以前の投稿で3番目のWooCommerceタブにナレッジベースの記事を入力するために作成した関数に戻ります。 ここで再利用できます。 子テーマのpage.phpの関数をエコーするだけで、特定のページの記事の選択されたカテゴリが表示されます。
page.phpコードは次のようになります。
<?php get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
//loop start
while ( have_posts() ) : the_post();
//include the page content template.
get_template_part( 'template-parts/content', 'page' );
//check and load the woo_knowledge_base_content
if( function_exists( 'woo_knowledge_base_content' ) ){
echo woo_knowledge_base_content();
} else {
echo 'function woo_knowledge_base_content() missing';
}
//load comment template
if ( comments_open() || get_comments_number() ) {
comments_template();
} //loop end
endwhile;
?>
</main><!-- .site-main -->
<?php get_sidebar( 'content-bottom' ); ?>
</div> <!-- .content-area -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>変更された唯一の行は
echo woo_knowledge_base_content();
これで、ページに選択したカテゴリのナレッジベース記事が含まれ、次のようになります。

これにより、Webサイトのメンバーエリア内にナレッジベースの記事が正常に表示されるはずです。
WordPressサイトのコンテンツを制限するためのいくつかの無料プラグイン
コーディングしたくない場合は、次のプラグインのいずれかをインストールすることを検討してください。 それらはすべて、未登録のユーザーからコンテンツを保護するのに役立ちます。
有料会員プロ
Paid Memberships Proを使用すると、ページ、投稿、カテゴリ、フォーラム、ダウンロード、サポートコンテンツなど、Webサイトのさまざまなコンポーネントにメンバーだけがアクセスできるようにすることができます。
s2Member
s2Memberは、コンテンツ制限を可能にするもう1つの軽量WordPressプラグインです。 s2Memberを使用すると、投稿、ページ、カテゴリ、タグ、ダウンロード可能なファイル、フォーラム、およびその他のファイルへのアクセスを、登録済みのユーザーのみに制限できます。
シンプルなメンバーシップ
Simple Membershipには、投稿、ページ、フォトギャラリー、添付ファイルなどのメンバー限定のコンテンツを一般的なサイト訪問者から保護できる、フレンドリーなダッシュボードが付属しています。
これらに加えて、WP-メンバーおよびメンバーシップとコンテンツの制限-有料メンバーサブスクリプションをチェックすることもできます。 これらのプラグインでさえ、プレミアムコンテンツをロックして、登録済みのユーザーだけにアクセスできるようにするのに役立ちます。
まとめ…
目標に応じて、基本的なコンテンツ制限機能から高度なコンテンツ制限機能までの間に何かが必要になる場合があります。 しかし、これで、単純なメンバーエリアを自分で実装する方法がわかりました。 あなたも、選択するのに最適なプラグインを知っています。
したがって、コードまたはプラグインを試して、以下で経験を共有してください。
