web-dev-qa-db-ja.com

WordPressサイト全体を訪問者に制限するにはどうすればよいですか。ただし、登録ページとログインページは制限しますか?

ウェブサイトを制限する、しかしログインと登録ページ


私のWordPressサイト全体を訪問者に制限したいのですが、登録ページとログインページに訪問者がアクセスできるようにしたいです(制限はありません)。


私のウェブサイトは会員制のウェブサイトなので、アクセスを制限して、訪問者がログインページと登録ページの2ページしか表示しないようにします。

私は正確にそれをするために複数のプラグインを試してみましたが、残念ながら私には正しいプラグインを見つけることができませんでした。一部のプラグインはWebサイト全体を1ページにリダイレクトしますが、他のプラグインは各ページのカスタムリダイレクト設定を個別に追加する必要があります。

欲しいもの: -

  1. リダイレクトによってWordPressウェブサイト全体を訪問者に制限します。
  2. ログインページと登録ページの2ページを制限しない
  3. ユーザーをログインページまたは登録ページにリダイレクトします。

私のログインページには、登録ページを表示するオプションがあります。
これらの両方のページには訪問者がアクセスできるようにし、他のWebサイトにはアクセスできないようにします。

1
Omar Qazi

以下のコードはWordPressのデフォルトのログイン/登録画面で動作します。

add_action( 'wp', 'member_only_site' );
function member_only_site( ) {
    if ( ! is_user_logged_in( ) ) {
          auth_redirect();
    }
}
2
Prasad Nevase

可能な代替案:

global $pagenow;

$accessible_pages = array('wp-login.php', 'wp-login.php?action=register');

if ( !is_user_logged_in() && !in_array($pagenow, $accessible_pages) && !is_admin() ) {
    auth_redirect();
}

ページがロードされるたびにログインページにリダイレクトされないようにするために、訪問者がパブリックにアクセスできるようにするページをカンマで区切って配列 "accessible_pages"に挿入できます。

0
BlackOut

このコードを試してください

function redi() {
global $pagenow;
if (!is_user_logged_in() && $pagenow != 'wp-login.php' && $pagenow !='wp-login.php?action=register') {
wp_redirect('wp-login.php?action=register');
}}  add_action('template_redirect', 'redi');
0
Kanon Chowdhury