Мне было интересно, если кто-нибудь знает способ использовать файл maintenance.php внутри вашей темы WordPress, а не один в папке wp-content.
В основном я ищу код для файла functions.php, который будет вызывать файл maintenance.php в папке темы.
Мы хотели бы добавить немного фирменного стиля на страницу обслуживания, и поэтому было бы лучше иметь возможность использовать его из папки темы. Я знаю, что для этого есть специальные плагины. Но мы не хотим давать нашим сайтам слишком много накладных расходов от плагинов, которые используются только для таких мелких деталей, как этот, поэтому, если есть способ добиться этого через папку темы, это было бы здорово!
Заранее спасибо!
Когда WordPress переходит в режим обслуживания, он добавляет файл с именем .maintenance
в корневой каталог во время выполнения обслуживания, а затем удаляется. Вы можете написать функцию внутри вашей темы functions.php
который проверяет этот файл и загружает пользовательскую страницу обслуживания из темы.
if ( ! function_exists( 'wpse84987_maintenance_mode' ) ) {
function wpse84987_maintenance_mode() {
if ( file_exists( ABSPATH . '.maintenance' ) ) {
include_once get_stylesheet_directory() . '/maintenance.php';
die();
}
}
add_action( 'wp', 'wpse84987_maintenance_mode' );
}
Поместите содержание вашего обслуживания в maintenance.php
страница в папке вашей темы, и вы все готовы стилизовать его, как вы хотели бы.
Если вы используете wp_die
функция, вы получите стандартную белую коробку на сером фоне. Таким образом, вы можете оформить свою страницу обслуживания так же, как любую другую страницу темы.
Вы также можете сделать это вне темы, добавив maintenance.php
к wp-content
каталог (или где вы установили WP_CONTENT_DIR
указать) как плагин. Когда WP проверяет режим обслуживания изнутри wp_maintenance()
он будет искать этот файл и загружать его, если он есть, или загружать его, если нет. Если сайт не находится в режиме обслуживания или находится в нем более 10 минут, файл maintenance.php не будет загружаться, даже если сайт технически все еще находится в режиме обслуживания. WordPress 4.6 представляет 'enable_maintenance_mode'
фильтр, который может (ab) использоваться таким инструментом, как wp-cli
чтобы принудительно проверить выпадающий список и позволить вам запустить команду CLI из файла обслуживания.
Других решений пока нет …