Страница поддержки WordPress внутри темы

Мне было интересно, если кто-нибудь знает способ использовать файл maintenance.php внутри вашей темы WordPress, а не один в папке wp-content.

В основном я ищу код для файла functions.php, который будет вызывать файл maintenance.php в папке темы.

Мы хотели бы добавить немного фирменного стиля на страницу обслуживания, и поэтому было бы лучше иметь возможность использовать его из папки темы. Я знаю, что для этого есть специальные плагины. Но мы не хотим давать нашим сайтам слишком много накладных расходов от плагинов, которые используются только для таких мелких деталей, как этот, поэтому, если есть способ добиться этого через папку темы, это было бы здорово!

Заранее спасибо!

2

Решение

Когда 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 из файла обслуживания.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]