非登録ユーザーのアクセスを無効にするにはどうすればいいですか?ユーザーがログインしていない場合は、カスタム登録/ログインページにリダイレクトします。私はプラグインを使用したくないので、これは以下のコードを使用してこれは可能ですか?.
<?php
if ( is_user_logged_in() ) {
echo 'Welcome, registered user!';
} else {
echo 'Welcome, visitor!';
}
?>
ありがとう。
これをプラグインに書いてください。
add_action( 'template_redirect', 'auth_redirect' );
GitHubの プラグインとして 。
これにより、すべての訪問者がまだログインしていない場合は、ログインが強制されます。
場合によっては、これはログイン毎回を要求しています。これはうまくいくかもしれません:
is_admin() || add_action( 'template_redirect', function() {
if ( ! is_user_logged_in() )
auth_redirect();
});
代わりに404ステータスを送信したい場合は、auth_redirect()
を次のように置き換えることができます。
wp_die( 'Nope.', 'Not found', [ 'response' => 404 ] );
コードを変更したくない場合は、代わりにこのプラグインを使用できます。 制限付きサイトアクセス 。それは非常に評価されていて、私の個人的な経験では、それは本当にうまくいきます。
自分のサイトへのアクセスを、ログインしている訪問者、または一連の指定されたIPアドレスからそのサイトにアクセスしている訪問者に制限します。制限付きの訪問者をログインページに送信するか、それらをリダイレクトするか、メッセージまたはページを表示します。エクストラネット、公にホストされているイントラネット、または並行開発/ステージングサイトに最適なソリューション。
私は答えをCSSで簡単にしました。
このコードをheader.phpに追加
<?php
if (!is_user_logged_in()) {
?>
<style>
.lor1{ display:none;}
.lor1.kun{ display: block;}
.lor1.user_not_login{ display: block;}
</style>
<?php } ?>
このコードを親のテーマfunction.phpファイルのあなたの子供のテーマに追加してください
add_action( 'template_redirect', 'redirect_to_specific_page' );
function redirect_to_specific_page() {
if ( is_page('home') && ! is_user_logged_in() ) {
wp_redirect( 'https://example.com/login', 301 );
exit;
}
}
"home"をページスラッグ名に置き換えてください。つまり、これはユーザーがログインせずにアクセスしたくないページで、このURL " https://example.com/login "をリンク先に置き換えます。ユーザーがログインしていない場合にユーザーをリダイレクトする場所のURL。つまり、このURLはログインページまたは登録ページに移動する必要があります。
まあ、あなたのコードは実際には機能的です。あなたはただ正しい場所で正しいモジュールを呼ぶ必要があります。
if( !is_user_logged_in() ){
// show_registration_panel()
} else {
// He is a registered user. Proceed as usual
}
この関数をあなたのfunctions.phpファイルに追加してください。
ログインページにリダイレクトするために、ユーザーがホームページ(ページID == 2)にログインアクセスしていない場合。
<?php
add_action('template_redirect','wpse64899_check_if_logged_in');
function wpse64899_check_if_logged_in()
{
$pageid = 2; // or whatever you want it to be
if(!is_user_logged_in() && is_page($pageid))
{
$url = add_query_arg(
'redirect_to',
get_permalink($pageid),
site_url('wp-login.php')
);
wp_redirect($url);
exit;
}
} ?>
あなたはおそらくあなたのfunctions.php
に次のものを入れる必要があるでしょう。
if ( is_user_logged_in() ) {
echo 'Welcome, registered user!';
} else {
wp_redirect(site_url('/wp-login.php?action=register'));
exit();
}