當我們網站遇到一些意外情況,無法提供良好的訪客服務了。可以通過一些方法讓全站都展示特定內容,避免您的訪客以為你跑路了。
有時遇到一些情況,比如站點需要閉站備案、或者被要求停站等等,我們就可以使用本文的功能,使我們的 wordpress 站點一鍵進入站點維護模式:打開站點的任意鏈接都顯示“站點維護中”的字眼,而且返回 503 響應碼比整站關閉對搜索引擎也很友好~
案例一
在主題根目錄下的functions.php
文件中的<?php
下添加以下代碼并保存。
if(!current_user_can('administrator')){
wp_die('升級中,過一會再來吧!By Npcink');
}
效果預覽

案例二
- 代碼來源:詳情
將以下代碼添加至主題根目錄下的 functions.php
中:
/**
* 維護模式
* 幫助:http://www.kartiktrivedi.com/16245.html
*/
if ( ! function_exists( 'npcink_maintain' ) ) :
function npcink_maintain(){
//網站標題
$blogname = get_bloginfo('name');
//報錯內容
$main_maintain = '
<div id="npcink-maintain">
<h1>很抱歉</h1>
<h2>網站正在維護,請稍后再試。</h2>
';
wp_die($main_maintain, '站點維護中 - '.$blogname ,array('response' => '503'));
}
endif;
add_action('get_header', 'npcink_maintain');
我這里提供了一份不錯的報錯內容,供大家參考:
<div id="npcink-maintain">
<h1>很抱歉</h1>
<h2>網站正在維護,請稍后再試。</h2> <div class="main">
<h2 class="n-title">我從遠方趕來<br>赴你一面之約</h2>
<p class="n-meat">《生如夏花》<br><span style="font-size: 12px;">Npcink</span></p>
</div>
</div>
<style type="text/css">
#npcink-maintain .main {
text-align: center;
padding-top: 10px;
color: #fff;
background-color: #b52424;
border-radius: 5px;
letter-spacing: 20px;
}
#npcink-maintain .n-title {
font-size: 4em;
margin-bottom: 5px;
}
#npcink-maintain .n-meat {
font-size: 2em;
padding-bottom: 2em;
}
</style>
代碼分析
依據頁底提供的源代碼,我進行了一些完善,做了一個報錯內容的函數,代碼邏輯更加清晰,還提供了一個演示的HTML,方便大家使用。
如果訪客不是編輯以上的用戶且沒有在登錄狀態下,則顯示站點維護中…
效果如下

案例三
源代碼
function lxtx_wp_maintenance_mode(){
if(!current_user_can('edit_themes') || !is_user_logged_in()){
$logo = 'https://www.ilxtx.com/wp-content/themes/lxtx/images/logo.png'; // 請將此圖片地址換為自己站點的logo圖片地址
$blogname = get_bloginfo('name');
$blogdescription = get_bloginfo('description');
wp_die('<div style="text-align:center"><img src="'.$logo.'" alt="'.$blogname.'" /><br /><br />'.$blogname.'正在例行維護中,請稍候...</div>', '站點維護中 - '.$blogname.' - '.$blogdescription ,array('response' => '503'));
}
}
add_action('get_header', 'lxtx_wp_maintenance_mode');
