サイト全体に閲覧制限を設定する方法
ログインしないとサイトが閲覧できない仕様にする場合、以下のコードをheader.phpに記述します。
例として『Twenty Seventeen』のテーマを使っています。
<?php
/**
* 省略しています
* @subpackage Twenty_Seventeen
*/
?>
<!DOCTYPE html>
<html <?php language_attributes(); ?> class="no-js no-svg">
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
...
<!DOCTYPE html>の前に
<?php
if (is_user_logged_in()){} else {auth_redirect();} ;
?>
を入力します。
<?php
/**
* 省略しています
* @subpackage Twenty_Seventeen
*/
?>
<?php
if (is_user_logged_in()){} else {auth_redirect();} ;
?>
<!DOCTYPE html>
<html <?php language_attributes(); ?> class="no-js no-svg">
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
...
サイトにアクセスしてみましょう。
ユーザー名(もしくはメールアドレス)、パスワードを求められます。
is_user_logged_in 関数は現在ログインしているかどうかを判別する関数です。
この関数を使えば、会員制サイトの制作や本番環境でのテストといったこともできます。
管理画面にもアクセスさせない!
購読者権限のユーザーでもログインすれば管理画面に入ることができます。
機能制限はあるものの、そもそも管理画面に入ってほしくない場合は、以下のコードをfunctions.phpに記述します。
add_action( 'auth_redirect', 'subscriber_go_to_home' );
function subscriber_go_to_home( $user_id ) {
$user = get_userdata( $user_id );
if ( !$user->has_cap( 'edit_posts' ) ) {
wp_redirect( get_home_url() );
exit();
}
}
以上、お粗末サマでした。
コメントを書く