Custom maintenance page

时间:2012-12-12 作者:Nikola

有没有办法从主题文件夹添加自定义维护页面?

我有激活维护模式的代码,但我无法获得样式。。

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\');
提前谢谢你,尼古拉。

1 个回复
SO网友:Morgan Estes

当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.phpwp-content 目录(或您设置的任何位置WP_CONTENT_DIR 指向)作为插件。当WP从内部检查维护模式时wp_maintenance() 它将查找该文件并加载它(如果存在),或者加载它自己的文件(如果没有)。如果站点未处于维护模式,或处于维护模式超过10分钟,请进行“维护”。即使从技术上讲,该网站仍处于维护模式,php也不会加载。WordPress 4.6introduces the \'enable_maintenance_mode\' filter, 可由以下工具(ab)使用wp-cli 强制检查该插件,并允许您从维护文件运行CLI命令。

结束

相关推荐

“自动WordPress更新无法完成-请立即重新尝试更新”--但没有.Maintenance文件

在自动升级失败后,我正在尝试手动将wordpress升级到最新版本(3.0.3)。升级后,一切正常,除了在我的管理区顶部有一条令人不快的消息:自动WordPress更新未能完成-请立即重试更新我在互联网上搜索,每个人都说这是因为.maintenance 文件位于Wordpress根文件夹中,是自动升级或手动升级失败的遗留文件。在第二种情况下,只需删除该文件,一切都会很好。但我搜索我的wordpress安装目录,没有这样的文件。知道是什么导致了这个问题吗?