web-dev-qa-db-ja.com

カスタムメンテナンスページ

テーマフォルダからカスタムメンテナンスページを追加する方法はありますか?

アクティブ化メンテナンスモードのコードはありますが、スタイルを取得できません。

function activate_maintenance_mode() {
    if ( !(current_user_can( 'administrator' ) ||  current_user_can( 'super admin' ))) {
        wp_die(
        '<h1>Website Under Maintenance</h1><p>Hi, our Website is currently undergoing scheduled maintenance.
        Please check back very soon.<br /><strong>Sorry for the inconvenience!</strong></p>', 'Maintenance Mode');
    }
}
add_action('get_header', 'activate_maintenance_mode');

ニコラさん、よろしくお願いします。

7
Nikola

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関数を使用すると、灰色の背景に標準の白いボックスが表示されます。この方法で、他のテーマページと同じようにメンテナンスページをスタイルすることができます。

UPDATE:ドロップインプラグインとしてmaintenance.phpディレクトリにwp-contentを追加することで(またはWP_CONTENT_DIRを指定した場所に)追加することで、テーマの外側でこれを行うこともできます。 WPが内側からメンテナンスモードをチェックするとき wp_maintenance() そのファイルを探して、もしあればそれをロードするか、あるいはそれ自身をロードしますそうでなければ。サイトがメンテナンスモードになっていない場合、または10分以上サイトに入っている場合は、サイトが技術的にまだメンテナンスモードになっていても 'maintenance.php'はロードされません。 WordPress 4.6 では 'enable_maintenance_mode'フィルタ が導入されました。これはwp-cliのようなツールでドロップインのチェックを強制するために(ab)使用することができます。メンテナンスファイルからCLIコマンドを実行してみましょう。

8
Morgan Estes