ログインしてない場合のみ、任意のメンテナンステンプレートを表示する
/**
* ログインしてない場合にメンテナンステンプレートを表示する
*
* @param string $template 表示するテンプレートファイル名.
*/
function mgn_load_maintenance_template( $template ) {
if ( ! is_user_logged_in() ) {
$template = locate_template( array( 'maintenance.php' ) );
}
return $template;
}
add_filter( 'index_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( '404_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'archive_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'attachment_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'author_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'category_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'date_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'embed_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'frontpage_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'home_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'page_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'paged_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'privacypolicy_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'search_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'single_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'singular_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'tag_template', 'mgn_load_maintenance_template', 10, 1 );
add_filter( 'taxonomy_template', 'mgn_load_maintenance_template', 10, 1 );
参考
- {$type}_template | Hook | WordPress Developer Resources