wp-membersでカスタム投稿とアーカイブページにもロックをかける方法

ログイン

wp-membersを使ってログインユーザーに限定したコンテンツを作成したい。

wp-membersの標準機能では、カスタム投稿ページ(一覧・個別)とアーカイブページ(一覧ページ)にロックをかけることができなくて困っている。

非ログインユーザーがこれらのページにアクセスしたら、コンコンテツをブロックし、かつwp-membersのログインページにリダイレクトさせる方法を教えて欲しい。

こんなことを考えている方へ。

この記事のポイントは以下です。

非ログインユーザーが、カスタム投稿ページ(一覧・個別)やアーカイブページ(一覧ページ)にアクセスしたら、コンテンツをブロックし、かつwp-membersのログインページにリダイレクトさせる方法(functions.phpを編集します)

この記事を書いている私は大阪在住のweb制作フリーランスです。

東証一部のEC企業で5年勤務した後、フリーランスに転向しました。現在はウェブサイトを作ったり、ECサイトを作ったり、サイト分析をしたり、ブログを書いたりして生活しています。

wp-membersでカスタム投稿とアーカイブページにもロックをかける方法

wp-membersでカスタム投稿ページ(一覧・個別)アーカイブページ(一覧ページ)にもロックをかける方法を解説します。

デフォルトの機能では、これらのページをブロックできないため、functions.phpを編集して対応します。

※追記:2021年5月13日
プラグインの管理画面には「カスタム投稿を対象にするか?」みたいなチェック項目がありまして。
これを見る限り、カスタム投稿ページも標準機能でブロック可能な気がするのですが、設定しても機能しないんですよね。謎です。

【関連記事はこちら】
【WordPress】カスタム投稿の一覧と個別ページをnoindexにする方法を読む >>

やりたいこと

今回やりたいことは以下です。

No内容
1ある「カスタム投稿」「一覧ページ」に非ログインユーザーがアクセスしたら、wp-membersのログインページにリダイレクトさせたい
2ある「カスタム投稿」「個別ページ」に非ログインユーザーがアクセスしたら、wp-membersのログインページにリダイレクトさせたい
3ある「カテゴリー」「一覧ページ」に非ログインユーザーがアクセスしたら、wp-membersのログインページにリダイレクトさせたい
4ある「カテゴリー」「個別ページ」に非ログインユーザーがアクセスしたら、wp-membersのログインページにリダイレクトさせたい
5ある「特定のURLが含まれるページ」に非ログインユーザーがアクセスしたら、wp-membersのログインページにリダイレクトさせたい

ただ、以下の④の要件は標準機能で吸収できますので、本記事では割愛します。

ある「カテゴリー」の「個別ページ」に非ログインユーザーがアクセスしたら、wp-membersのログインページにリダイレクトさせたい

①②③⑤については、標準機能では実現ができません。

functions.phpを編集して対応します。

必要な準備

事前に「wp-members」の機能を使ってログイン用ページを作成しておきます。

以下の記事で詳しく解説されています。

wp-membersでカスタム投稿とアーカイブページにロックをかけるためのコード

wp-membersでカスタム投稿ページ(一覧・個別)アーカイブページ(一覧ページ)にロックをかけるためのコードを紹介します。

コードでやっていることは以下です。

指定したカスタム投稿ページ(一覧・個別)やアーカイブページ(一覧ページ)に非ログインユーザーがアクセスしたら、事前に作っておいたwp-membersのログインページにリダイレクトさせる

今回の例では「事前に作っておいたwp-membersのログインページ」のスラッグは「loginpage」としています。

【関連記事はこちら】
【2021年】カスタム投稿のアーカイブページにメタディスクリプションを出力する【All in one SEO Pack】を読む >>

カスタム投稿の一覧ページをブロックするコード

カスタム投稿の一覧ページをブロックするコードは以下です。

wp-members カスタム投稿 functions.php
//非ログイン時に、カスタム投稿videoの一覧ページにアクセスしたら、ログインページを表示
function archive_video_page_redirect() {
	if( ! is_user_logged_in()  && is_post_type_archive( 'video' ) ) {
		wp_redirect( '/loginpage' );
		exit();
	}
}
add_action( 'template_redirect','archive_video_page_redirect');

この例では、非ログインユーザーが「video」というスラッグのカスタム投稿の一覧ページにアクセスしたら「wp-membersのログインページ(この例ではスラッグは「loginpage」)」にリダイレクトされます。

カスタム投稿の個別ページをブロックするコード

カスタム投稿の個別ページをブロックするコードは以下です。

wp-members カスタム投稿 functions.php
//非ログイン時に、カスタム投稿videoの個別ページにアクセスしたら、ログインページを表示
function single_video_page_redirect() {
	if( ! is_user_logged_in()  && is_singular('video') ) {
		wp_redirect( '/loginpage' );
		exit();
	}
}
add_action( 'template_redirect','single_video_page_redirect');

この例では、非ログインユーザーが「video」というスラッグのカスタム投稿の個別ページにアクセスしたら「wp-membersのログインページ(この例ではスラッグは「loginpage」)」にリダイレクトされます。

特定のカテゴリーの一覧ページをブロックするコード

特定のカテゴリーの一覧ページをブロックするコードは以下です。

wp-members アーカイブ functions.php
//非ログイン時に「カテゴリースラッグ:directions」の一覧ページにアクセスしたら、ログインページを表示
function directions_page_redirect() {
	$url = $_SERVER['REQUEST_URI'];
	if( ! is_user_logged_in()  && strstr($url,'category/directions')==true ) {
		wp_redirect( '/loginpage' );
		exit();
	}
}
add_action( 'template_redirect','directions_page_redirect');

この例では、非ログインユーザーが「category/directions」というURLが含まれるページにアクセスしたら「wp-membersのログインページ(この例ではスラッグは「loginpage」)」にリダイレクトされます。

他にもやり方があると思います。

今回の例では、WordPressのURLの構造が「category/”カテゴリーのスラッグ名”」になるのを利用して、上記のコードを設定しました。

特定のURLが含まれるページをブロックするコード

特定のURLが含まれるページをブロックするコードは以下です。

wp-members functions.php
//非ログイン時に、「/staff」というURLが含まれるページにアクセスしたら、ログインページを表示
function staff_kotei_top_page_redirect() {
	$url = $_SERVER['REQUEST_URI'];
	if( ! is_user_logged_in()  && strstr($url,'/staff')==true ) {
		wp_redirect( '/loginpage' );
		exit();
	}
}
add_action( 'template_redirect','staff_kotei_top_page_redirect');

カテゴリを指定したのと同じやり方です。

この例では、非ログインユーザーが「/staff」というURLが含まれるページにアクセスしたら「wp-membersのログインページ(この例ではスラッグは「loginpage」)」にリダイレクトされます。

おすすめのWordPress勉強法はこちら

WordPressの勉強はネットの情報だけでもできますが、サイトによって情報や解説の粒度にバラつきがあり体系的に学ぶのが難しいです。また、最新の情報が反映されていないこともあります。

不安を抱えながら自己学習で時間を浪費するより、世の中の優良な教材を活用する方が良いです。

  • オンラインスクールで学ぶ

TechAcademy(テックアカデミー)の「WordPressコース」は、現役のエンジニアが講師です。パーソナルメンターとして、毎日15〜23時のチャット・レビューサポートで初学者の”分からない”をサポートしてくれます。
安い買い物ではないので、まずはTechAcdemyの講座を無料体験で試してみるのがおすすめです。

  • 本で学ぶ

WordPress 仕事の現場でサッと使える! デザイン教科書[WordPress 5.x対応版]」はおすすめです。WordPressの最新バージョンに対応しており、静的ページをWordPress化していく手順を丁寧に解説しています。

私も実際にこの本でWordPressを勉強しました。案件でよく使うカスタマイズ方法や、セキュリティ対策、有名プラグインの紹介もされており、痒い所に手が届きます。

  • 動画学ぶ

Udemyの「WordPress開発マスター講座 」がオススメです!。WordPressで既存テーマのカスタマイズではない、オリジナルのウェブサイトを作る手順を解説しています。

プラグインによるカスタマイズ方法、フックの知識やテンプレート階層の知識、ショートコードやカスタム投稿タイプ・カスタム分類・カスタムフィールドといった、高度な機能についても紹介されてり、内容的には実案件のレベルです。

【Udemyがセール中(5月27日まで)】
今シーズン最大のセール! 対象コースが ¥1,270から。
セール中のWordPressの講座一覧を見る

まとめ

この記事のポイントはこちらです。

  • wp-membersの標準機能では、カスタム投稿ページ(一覧・個別)とアーカイブページ(一覧ページ)にロックをかけることができない
  • 対応としては、functions.phpに非ログインユーザーが上記のページにアクセスしたら、wp-membersのログインページにリダイレクトする記述を書けばOK
  • wp-membersのログイン用ページは事前に作成しておく必要がある

今回の記事はここまです。

この記事を書いた人

hiro

美味しいご飯とお酒と一人旅が好き。EC企業に5年▶︎web制作フリーランスへ。ECサイト制作、デザイン、コーディング、サイト分析、CVR改善、ブログ書いたりして生活しています。

旅行ブログ「アジアをひとりで旅してみたら」も運営中。