WordPress 以 MySQL 為後端。雖然外掛能解決大多數問題,但直接在 phpMyAdmin 執行 SQL 指令往往是處理批量資料修正、清理、遷移最高效的方式。本文整理 8 條高頻實用 SQL,涵蓋備份、清理修訂/垃圾留言、修改作者、重設密碼、換域名、監控查詢數、還原資料庫等核心場景。
DELETE FROM wp_posts WHERE post_type = 'revision';
WP 2.6+ 引入修訂功能,長期積累會膨脹 wp_posts 表。執行前請確認已備份。
DELETE FROM wp_comments WHERE comment_approved = '0';
警告: 會連同合法待審留言一併刪除。建議搭配 Akismet 外掛自動過濾垃圾留言,減少人工清理頻率。
-- 1. 查詢使用者 ID
SELECT ID, display_name FROM wp_users;
-- 2. 假設 新作者 ID=5, 舊 admin ID=1
UPDATE wp_posts SET post_author = 5 WHERE post_author = 1;
解決早期誤用 admin 發文、團隊協作作者歸屬調整等問題。
UPDATE wp_users SET user_pass = MD5('NewPassword') WHERE user_login = 'admin' LIMIT 1;
MySQL MD5() 為內建雜湊函數。執行後即可用新密碼登入後台。
-- 1. 站點設定 (home, siteurl)
UPDATE wp_options SET option_value = REPLACE(option_value, 'https://oldsite.com', 'https://newsite.com')
WHERE option_name IN ('home', 'siteurl');
-- 2. 文章 GUID (永久連結識別碼)
UPDATE wp_posts SET guid = REPLACE(guid, 'https://oldsite.com', 'https://newsite.com');
-- 3. 文章內容內嵌連結/圖片路徑
UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://oldsite.com', 'https://newsite.com');
三步驟覆蓋設定、GUID、內文,完成全站域名替換。
編輯佈景主題 footer.php,在 </body> 前加入:
<?php if (is_user_logged_in()) { ?>
<?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.
<?php } ?>
僅登入使用者可見,避免洩露資訊給訪客。
wp_ 請自行替換。