WordPress 主題開發中,CSS 衝突、佈局錯位、白屏等問題層出不窮。本文整理四大實戰除錯策略,助你快速定位並解決前端疑難雜症。
實用技巧:勾選 Settings → Preferences → "Enable CSS source maps",即可在 Styles 面板直接跳轉到原始 SCSS/Less 行號。
<?php
// 在開發環境 functions.php 臨時加入
add_action('wp_head', function () {
if (current_user_can('manage_options')) {
echo '<style> * { outline: 1px solid rgba(255,0,0,0.3) !important; } </style>';
}
});
?>
<?php
// wp-config.php 開發環境
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true); // 寫入 wp-content/debug.log
define('WP_DEBUG_DISPLAY', false); // 不直接輸出到畫面
define('SCRIPT_DEBUG', true); // 載入未壓縮版 JS/CSS
define('SAVEQUERIES', true); // $wpdb->queries 記錄所有 SQL
// 模板中快速查看變數
function dd($var) { echo '<pre>'; var_dump($var); echo '</pre>'; die; }
// 使用: dd($post); dd(get_queried_object());
?>
| 現象 | 可能原因 | 快速驗證 |
|---|---|---|
| 側邊欄掉到底部 | 容器寬度不足 / float 未清除 / box-sizing 缺失 | 策略二 + 策略三 |
| 樣式不生效 | 選擇器優先級被覆蓋 / 緩存插件未清 / 子主題 style.css 未正確 enqueue | 策略四 + Network 面板看 304 |
| 白屏 / 500 | PHP 語法錯誤 / 記憶體耗盡 / 外掛衝突 | WP_DEBUG_LOG + error_log |
| 自定義欄位不顯示 | Meta box 未註冊 / 欄位名衝突 / ACF 版本不符 | dd(get_post_meta($post->ID)) |
善用 DevTools 可視化、二分法縮小範圍、PHP 端日誌 三位一體,WordPress 前端除錯不再是盲人摸象。養成「開發環境啟用除錯常數、上線前關閉」的習慣,能節省 80% 的排查時間。