2017-08-02 156 views
2

我想知道是否有人知道如何在WordPress主题中使用maintenance.php文件,而不是在wp-content文件夹中。WordPress主题内维护页面

我主要是寻找一些代码的functions.php文件,这将调用主题文件夹中的maintenance.php文件。

我们希望为维护页面添加一些品牌,因此最好能够在主题文件夹中使用它。我知道这有特殊的插件。但是我们不想让插件仅仅用于这样的小细节,所以如果有一种方法可以通过主题文件夹来实现,那就太棒了!

在此先感谢!

回答

1

当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'过滤器,它可以由(wp-cli)这样的工具使用(ab)强制检查插入,并允许您从维护文件运行CLI命令。

+0

奇怪。我昨天遇到了完全相同的代码,但当时我没有得到它的工作。现在它像预期的那样工作,它将主题中的maintenance.php加载!谢谢! – ProxxiM