[WordPress]関数を使用して、特定の記事/ページ/カテゴリへのアクセスを制限する

Last Updated: 2023 年 07 月 17 日 4のコメント

会員制のプラグインを使用すると、より細かく特定記事/ページなどのアクセスを制限することができます(参照)。 この記事では、単純な関数を使用して、これらの機能を実装する方法について説明します。

例えば、特定のページへのアクセスをログインユーザのみ許可し、ゲスト(ゲスト)は、アクセスできないようにしたい場合は、次のコードを使用することができます。

add_action('template_redirect', 'redirect_to_specific_page');
function redirect_to_specific_page() {
if ( is_page('page_slug') && !is_user_logged_in())
{
auth_redirect();
}
}

auth_redirect()ページで呼び出され、そのページを表示するユーザーがログインしているかどうかを確認してログインしなかった場合、ログインページにリダイレクト(移動)します。 ログイン後、元のアクセスしようと試みていたページに移動します(参照). auth_redirect() 代わりに、次のコードを使用しても同じ効果を得ることができます。

$redirect = wp_login_url( get_permalink() );
wp_redirect( $redirect );
exit;

カスタマイズされたログインページに移動するには:

$return_url = esc_url( home_url( '/login/' ) ); // Redirect to your custom login page in WordPress
wp_redirect( $return_url );
exit;

その後、 www.example.com/login/ ページに移動します。 特定のURLに移動させたい場合 wp_redirectを使用します。

wp_redirect( 'http://www.example.com/your-page/', 301 );
exit;

そして is_page('contact') この部分を適切に変更して、特定のカテゴリ/特定文などに置き換えることができます。 次の WordPress 文書を参照してくださいに役立ちます。

上記のようなコードを使用すると、あえて重いプラグインを使用する必要なく、簡単に特定のページ/文/カテゴリなどを制限することができます。 そして !is_user_logged_in() 部分を適切に変更して、特定の会員レベル別(役割別)に制限することも可能です(参照).

ちなみにサイトの開発のためのサイトへのアクセスを制限するには、 Redirect to login if not logged in同じプラグインを使用することができます。 個人的には、この機能のために Hide My Siteというプラグインを主に使用します。 これらのプラグインを使用すると、サイトの開発/サイトメンテナンス中一般人のアクセスをブロックすることができます。

メモ:


4のコメント

コメント

  1. 本当にいくら捜してみ我が国に WordPressがこれほどまとまったサイトはないようです。
    よく読みました!

    応答