問題描述
我正在客户端訪問的服務器上開發一個站點,我想做的是為管理員顯示 WP_DEBUG 。在此引用 Yoast’s article:
if ( isset($_GET['debug']) && $_GET['debug'] == 'true')
define('WP_DEBUG', true);
將顯示 WP_DEBUG 僅適用於連接有?debug=true 的網址,如 http://domain.com/?debug=true
我在想,Debug Bar 默認情況下可能會保留一些信息 (不管 WP_DEBUG 是否被打開),但是我覺得很瘋狂,因為我不認為是這樣。
所以,我在想的是有用的,將檢查當前用户 (具有 manage_options 功能,然後通過 add_query_arg()運行鏈接:
function zs_admin_debug() {
if (!current_user_can('manage_options')) {
add_query_arg('debug','true');
}
}
但我不確定的是 – 是否有一個鈎子可以用來影響網站上的所有鏈接?這樣,管理員總是看到調試,我認為這是非常有用的。感謝任何幫助一如既往!
最佳解決方案
我不認為有一個通用的 URL 鈎子。有很多鈎子,我可能錯過了,但我不認為有一個。您可以通過 adambrown.info 上的掛鈎查看。有很多 URL 鈎子,但不是通用的。
如果我可以提出另一個解決方案:將錯誤記錄到文件中。
/**
* This will log all errors notices and warnings to a file called debug.log in
* wp-content (if Apache does not have write permission, you may need to create
* the file first and set the appropriate permissions (i.e. use 666) )
*/
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);
該代碼直接來自 the Codex for the wp-config.php file 。如果你這樣做,你不必擔心玩雜耍 $_GET 或整理誰是誰,誰不是管理員。
編輯:
我忘了一個可能的解決方案。你可以用 Javascript 做這個。一個簡短的腳本可以將您的參數附加到頁面上的所有 URL,您可以輕鬆地將腳本加載到管理員。
我仍然建議’log’ 解決方案,因為每個人的錯誤都被記錄。如果你的人像我的,併發送錯誤’reports’ 像 「嘿,這個網站是壞的,當你這樣做」 你會欣賞的日誌。 🙂
次佳解決方案
即使我的第一個方法是垃圾桶,s_ha_dums 答案是一個乾淨的,也許是最好的方法,讓我再提供一個工作場景:
以下內容設置了管理員登錄到系統後的 24 小時 (86400 秒) 有效的 cookie 。在 wp-config.php 中,常數 WP_DEBUG 有條件地根據所述 cookie 的存在和值而定義。
注意事項:WP_DEBUG 此後將被設置為 true,用於在同一台機器上從同一瀏覽器登錄的用户。
在 functions.php(或作為插件) 中:
function wpse_69549_admin_debug( $user_login, $user )
{
if ( in_array( 'administrator', $user->roles ) ) {
setcookie( 'wp_debug', 'on', time() + 86400, '/', get_site_option( 'siteurl' ) );
}
}
add_action( 'wp_login', 'wpse_69549_admin_debug', 10, 2 );
參見:Codex > Action Reference > wp_login
在 wp-config.php:
if ( isset( $_COOKIE['wp_debug'] ) && 'on' === $_COOKIE['wp_debug'] ) {
define( 'WP_DEBUG', true );
} else {
define( 'WP_DEBUG', false );
}
第三種解決方案
它沒有正確地回答你的問題,但從個人經驗來看,最好是通過匹配 IP 地址而不是 URL 來啓用調試模式。
這需要修改鏈接並解決在 WP 加載所需的用户功能之前如何識別管理員。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。