特定のページの接続時のログインページや、特定のページに移動する(WordPress)

特定のページの接続時のログインページや、特定のページに移動させる

WordPressで、特定のページ(または投稿またはカテゴリ)にゲストユーザーがアクセスする場合は、ログインページまたは特定のページにリダイレクトする必要がある場合があります。 次の関数を使用すると、特定のページにログインしていないユーザーがアクセスすると、指定されたページに移動します。

add_action( 'template_redirect', 'redirect_to_specific_page' );

function redirect_to_specific_page() {

if ( is_page('slug') && ! is_user_logged_in() ) {

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

is_page('slug')でアクセスを制限するページのslugを指定します。 複数のページを指定する場合 is_page( array( 42, 'about-me', 'Contact' ) )のような形式を使用することができます(ここ を参照)。 ページの代わりにカテゴリー自体(is_category)やカテゴリ内文(カテゴリ内)、個々の記事(is_single)など、様々な形で応用が可能です。

そして上では、特定のページにリダイレクトされるが、ログインページにリダイレクトさせるには、リダイレクトされるURLを wp_login_url( home_url() )に置き換えします。 これにより、非ログインユーザ(ゲストユーザ)は、ログインページに移動することになり、ログイン情報を入力すると、サイトのホームにリダイレクトされます。 ログイン後、現在のページ(直前のページ)にリダイレクトさせるには wp_login_url( get_permalink() )を使用します(wp_login_url を参照)。

参照

一部の記事にはアフィリエイトリンクが含まれている場合があり、パートナーの活動で一定額の手数料を受け取ることがあります。

1のコメント

  1. ホームページ(前面ページ)接続時に特定のページに一時的にリダイレクトするには、 if ( is_page('slug') && ! is_user_logged_in() ) コードの代わりに次のコードを使用することができます。

    if( is_home() || is_front_page() )

コメントを残す

*電子メール情報は公開されません。