Di tempat Anda functions.php
:
add_action( 'wp_loaded', function() {
global $pagenow;
if(
defined( 'IN_MAINTENANCE' )
&& IN_MAINTENANCE
&& $pagenow !== 'wp-login.php'
&& ! is_user_logged_in()
) {
header( 'HTTP/1.1 Service Unavailable', true, 503 );
header( 'Content-Type: text/html; charset=utf-8' );
header( 'Retry-After: 3600' );
if ( file_exists( WP_CONTENT_DIR . '/maintenance.php' ) ) {
require_once( WP_CONTENT_DIR . '/maintenance.php' );
}
die();
}
});
Kode ini akan memeriksa konstanta (lihat titik berikutnya) dan jika pengguna tidak masuk, muat file yang dibuat pada titik # 1 dan keluar.
Jika Anda hanya ingin mengizinkan pengguna dengan kemampuan tertentu, gunakan current_user_can('capability_to_allow')
sebagai ganti is_user_logged_in()
. Lihat Codex untuk info lebih lanjut.
Mungkin Anda dapat menambahkan maintenance.php
tautan ke halaman login; dengan cara ini pengguna yang tidak masuk log dapat mengkliknya tanpa harus secara manual memasukkan URL login di bilah alamat.
Jika Anda menggunakan tema yang dikembangkan oleh pihak ke-3, gunakan tema anak ; dengan cara ini Anda akan dapat memperbarui tema dengan aman tanpa kehilangan perubahan Anda.