Untuk mencegah pengunjung saya melihat versi situs saya yang rusak selama pemeliharaan, dan memberi mereka informasi terbaru, saya ingin mengarahkan mereka secara otomatis ke halaman pemeliharaan sementara. Saya mencari solusi portabel yang dapat digunakan di situs mana pun, tanpa URL hardcoding.
Administrator yang masuk (atau tingkat pilihan pengguna lain) harus mendapatkan akses penuh ke back-end dan front-end. Ada banyak plugin di luar sana yang menawarkan fungsi ini, tetapi saya mencari solusi hanya kode.
maintenance
Pengguna baru
sumber
sumber
Jawaban:
WordPress memiliki fitur tertanam untuk menangani mode pemeliharaan.
Ketika Anda memutakhirkan sebuah plugin, atau inti WordPress dari dasbor WP, WordPress memasuki mode pemeliharaan: ia mencoba memuat file bernama
maintenance.php
terletak di folder konten (biasanya/wp-content
), dan jika file itu tidak ada, WP menunjukkan pesan default.Saya sarankan Anda menggunakan file itu, dengan cara ini Anda akan konsisten untuk pemeliharaan yang dipicu secara manual dan untuk pemeliharaan yang ditangani WordPress.
Bagaimana caranya
Pertama-tama buat
maintenance.php
file dan letakkan di sana konten yang Anda inginkan. Untuk penataan, saya sarankan Anda memasukkan CSS ke dalam file itu sendiri, menggunakan<style>
tag; umumnya ini bukan saran yang baik, tetapi dalam hal ini memberi Anda kemampuan menggunakan file untuk mode pemeliharaan yang ditangani WordPress, ketika tidak ada tema yang dimuat (dan tema mungkin akan ditingkatkan, jadi tidak dapat diandalkan).Simpan file yang baru saja dibuat di folder konten (biasanya
/wp-content
).Di tempat Anda
functions.php
: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 gantiis_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.
Saat Anda ingin mengaktifkan mode pemeliharaan, buka
wp_config.php
dan letakkan di sana:Setelah itu, ketika Anda siap untuk membuat situs Anda menjadi publik lagi, cukup hapus garis itu atau ubah
true
agarfalse
lebih mudah diaktifkan kembali.sumber
define('WP_CONTENT_DIR','/url/to/define/');
dalamwp-config.php
file Anda .Jawaban sebelumnya lengkap dan ditulis dengan baik. Bagaimanapun jika Anda seperti saya dan Anda ingin memiliki segalanya di satu tempat, Anda dapat menghapus baris berikut dalam
function.php
file dan membuatmaintenance.php
file di direktori tema Anda.Ini sangat berguna jika repositori Git Anda menunjuk hanya ke direktori tema.
CATATAN
Saya mengubah tajuk menjadi
header('HTTP/1.1 503 Service Temporarily Unavailable');
seperti yang di atas tidak bekerja untuk saya.sumber