一介資男(Mxp.TW) 開發工具箱

外掛說明

一介資男(Mxp.TW) 開發工具箱不是單一功能外掛,而是一個 WordPress 開發、維運、搬站與站點管理工具包。套件內含主要工具箱與四個可獨立啟用的子外掛,讓管理員只啟用目前站台需要的能力。

套件架構

  • Dev Tools - Mxp.TW:主要工具箱。提供外掛/主題安裝、打包、取代、資料庫維護、網站設定檢視與檔案異動檢查。
  • Dev Tools: Snippets - Mxp.TW:常用維運片段。集中處理安全強化、登入/後台調整、媒體上傳政策、報告排程與網域到期檢查。
  • Dev Tools: Site Manager - Mxp.TW:多站管理輔助。匯出/匯入站台資訊,並以 passkey、加密 token 與 HMAC 提供跨站快速登入。
  • Dev Tools: Hide Login Page - Mxp.TW:登入路徑防護。將預設登入入口改為自訂路徑,並把原始登入與未登入後台入口導向 404。
  • Dev Tools: Feedback Reporter - Mxp.TW:登入用戶全站問題回報。前台與後台可擷取目前頁面、標註截圖、填寫描述後由本站安全轉送 webhook。

Dev Tools – Mxp.TW(主要工具箱)

主要工具箱面向高權限管理員與開發者,功能集中在「安裝、搬站、檢查、替換」:

  • 開發常用外掛清單:從遠端清單與 WordPress.org API 取得外掛資訊,支援安裝、更新與啟用。
  • Themeforest List:輸入 Envato 或 MXP 授權碼後,列出可下載的主題、外掛與其他檔案,並支援線上安裝。
  • 外掛搜尋工具:在後台嵌入作者整理的外掛搜尋介面,從可信來源帶回下載連結後安裝。
  • 外掛/主題打包:可從外掛列表、主題工具、最近異動檔案、wp-content 或 wp-config.php 產生 ZIP 下載。
  • 外掛/主題取代:上傳 ZIP 後解析外掛或主題資訊,比對既有項目,取代前建立備份,失敗時回滾。
  • 調整內容作者工具:依 Post Type 批次改寫內容作者。
  • 查看網站各項設定:顯示外部網路資訊、wp-config.php 常數、使用者定義常數、.htaccess 與 .user.ini。
  • 主機 PHP 設定:在 phpinfo() 可用時顯示 PHP/主機設定。
  • 資料庫檢視與匯出:列出資料庫與資料表,支援單表、全表、背景 SQL 匯出與 wp-content 打包。
  • 資料庫關鍵字取代:以 Search Replace DB 類別處理序列化資料安全的預覽與實際取代。
  • WP 資料庫最佳化:檢視大型 autoload options,清理 orphan/duplicate meta、未使用 option、使用者 metabox,也提供重置 WordPress 的高風險操作。
  • 查看最近變更檔案:掃描並分類近期異動的核心、上傳、主題、外掛與其他檔案。
  • Hook 執行時間除錯:登入狀態下加上 ?debug 時,在 admin bar 顯示 hook 執行時間統計。

Dev Tools: Snippets – Mxp.TW(常用片段與站台行為)

Snippets 子外掛會直接接管多個 WordPress hook,適合用 wp-config.php 先定義 MDT_* 常數後再啟用。

  • 安全強化:停用 XML-RPC、隱藏 REST 使用者資料、移除多種前端 metadata/oEmbed/shortlink 輸出、隱藏作者資訊與頭像、停用 self-ping。
  • HTTP 標頭:可輸出 frame-options、XSS protection、content type options、cross-domain policy 與 HSTS 類型標頭。
  • 檔案修改保護:預設啟用 DISALLOW_FILE_MODS / DISALLOW_FILE_EDIT,並保護指定管理員不被一般後台列表、編輯、刪除或降權流程影響。
  • 登入與後台調整:登入頁 Logo、登入後導向、管理信箱同步、註冊開關、封鎖使用者登入、顯示內容/分類/使用者 ID、使用者註冊時間欄位、隱藏非管理員更新提示與 Customize 選單。
  • 媒體與上傳政策:可停用縮圖產生、停用大圖縮放、上傳圖片大小限制、自動填入圖片標題/alt/content,並對特權管理員與一般使用者套用不同的檔案大小與 MIME 規則。
  • Bot/垃圾防護:登入、註冊、WooCommerce 與留言表單加入 honeypot 與時間戳檢查。
  • 前台 Basic Auth:可啟用簡易前台驗證,並以指定 query key/cookie 暫時略過。
  • 外部 HTTP 請求管控:可封鎖指定網域,或啟用全域封鎖後只允許白名單。
  • 站台健康回報與自動更新排程:可透過排程回報站台資訊,也可在排程內更新指定外掛。
  • 網域到期檢查:Dashboard widget 顯示 home_url()、site_url()、多站、額外指定網域與 filter 網域的 RDAP/WHOIS 結果,包含到期日、註冊商、狀態、DNSSEC、Name Server、原始資料與通知狀態。

網域到期檢查常用設定:

  • MDT_DOMAIN_EXPIRY_CHECK:是否啟用網域到期檢查,預設 true。
  • MDT_DOMAIN_EXPIRY_NOTICE_DAYS:到期通知門檻,預設 90, 60, 30, 14, 7, 3, 1 天。
  • MDT_DOMAIN_EXPIRY_EXTRA_DOMAINS:額外指定檢查網域,支援陣列或逗號分隔字串。
  • MDT_DOMAIN_EXPIRY_OBSERVE_HOSTS:是否自動記錄非設定來源的 HTTP_HOST,預設 false。
  • MDT_DOMAIN_EXPIRY_OBSERVED_HOST_RETENTION_DAYS:觀察到的 HTTP_HOST 紀錄保留天數,預設 180。
  • MDT_DOMAIN_EXPIRY_MAX_DOMAINS_PER_RUN:單次排程最多查詢數量,預設 20。
  • MDT_DOMAIN_EXPIRY_STORE_RAW_DATA:是否儲存 RDAP/WHOIS 原始資料,預設 true。

Dev Tools: Site Manager – Mxp.TW(多站管理)

Site Manager 用來把多個 WordPress 站台整理成一張管理表。

  • 匯出目前站台資訊:包含站台 URL、站名、管理員信箱、IPv4、IPv6、DNS A/NS 記錄與 Whois/網域到期資訊。
  • 匯入其他站台匯出的設定字串,儲存在 mxp_dev_sites_info_db 站台選項。
  • 管理表以 DataTables 顯示站台 URL、站名、信箱、IP、DNS、網域到期日與操作。
  • 快速登入:對已匯入站台產生加密 token 與 HMAC,POST 到目標站後由目標站驗證 passkey 與 15 秒時間窗,再登入最高權限管理員。
  • 重置站台密鑰:刪除本機 passkey 並在下次使用時重建;既有匯出字串會因此失效。
  • 支援單站 Tools 頁面與 multisite Network Admin 頁面。

匯出的字串包含 passkey。請只在可信任管理員與可信任傳輸渠道中保存或分享。

Dev Tools: Hide Login Page – Mxp.TW(登入路徑防護)

Hide Login Page 沒有設定頁,透過常數控制:

  • MDT_LOGIN_PATH:預設 admin-staff,登入網址會變成 /admin-staff/;未啟用 pretty permalink 時使用 /?admin-staff。
  • MDT_LOGIN_PATH_DISPLAY:預設 true;設為 false 時可在外掛列表隱藏此子外掛。

啟用後,wp-login.php、/login、wp-register、wp-activate 與非 multisite 的 wp-signup 會走 404 流程;未登入的 /wp-admin/ 請求也會被導到 /404。此外掛也會改寫 WordPress 產生的登入 URL、redirect URL、welcome email 中的登入連結,以及 WooCommerce 密碼重設連結。

Dev Tools: Feedback Reporter – Mxp.TW(全站問題回報)

Feedback Reporter 沒有設定頁,透過 MDT_FEEDBACK_REPORTER_* 常數控制。啟用外掛後預設啟用回報功能;只允許登入並符合 role / user ID 規則的使用者在前台與後台看到回報入口。若要關閉,可在 wp-config.php 將 MDT_FEEDBACK_REPORTER_ENABLE 定義為 false。

  • 前台使用明確的「回報問題」浮動按鈕;後台使用低干擾的小型「回報」入口,避免遮住主要操作或一直提醒使用者回報。
  • 使用者點擊後才啟動回報流程,擷取目前頁面「當下捲動視野」並開啟截圖標註工具。
  • 使用者可在截圖上畫框、箭頭、文字、自由畫筆與馬賽克;若自動 DOM 截圖無法呈現互動畫面,可上傳 PNG/JPEG/WebP 或從剪貼簿貼上外部截圖取代,再填寫問題描述。
  • 前端只送到本站 REST endpoint;webhook URL 與 secret 不會輸出到瀏覽器。
  • WordPress server-side 驗證登入、nonce、role/user ID、rate limit、截圖 MIME,並在 webhook 前重新檢查與壓縮截圖大小;未設定 webhook 時仍會保存本機 log/截圖,設定 webhook 後才送出外部通知。
  • Discord webhook 會自動使用 payload_json + files[0],讓文字、SEO 資訊與截圖可直接進 Discord;Slack incoming webhook 會自動使用 JSON + Block Kit 送出文字摘要與本機 log/截圖路徑。
  • log 目錄預設在 wp-content/uploads/mxp-dev-tools/feedback-reporter/,每次回報會寫入不可預測的隨機子目錄與隨機檔名,並建立 index.html 與 .htaccess 阻擋直接瀏覽,再依保留天數與檔案數上限自動清理;移除 Feedback Reporter 子外掛時預設會刪除 log。

常用常數:

  • MDT_FEEDBACK_REPORTER_ENABLE:是否啟用全站回報,預設 true;可設為 false 關閉。
  • MDT_FEEDBACK_REPORTER_ADMIN_ENABLE:是否在 wp-admin 輸出低干擾後台回報入口,預設 true。
  • MDT_FEEDBACK_REPORTER_ADMIN_BUTTON_MODE:後台入口樣式,預設 subtle-tab,另可用 compact-pill。
  • MDT_FEEDBACK_REPORTER_WEBHOOK_URL:接收回報的 webhook URL;預設要求 HTTPS,未設定時仍可回報並保存本機 log/截圖,但不送出外部通知。
  • MDT_FEEDBACK_REPORTER_WEBHOOK_FORMAT:webhook payload 格式,預設 auto;Discord 與 Slack incoming webhook URL 會自動送出相容格式,也可設為 generic、discord 或 slack。
  • MDT_FEEDBACK_REPORTER_WEBHOOK_SECRET:webhook HMAC 簽章 secret,預設空字串。
  • MDT_FEEDBACK_REPORTER_WEBHOOK_REQUIRE_HTTPS:是否要求 webhook URL 使用 HTTPS,預設 true;設為 false 時可接受 HTTP,但仍會拒絕 private/reserved IP。
  • MDT_FEEDBACK_REPORTER_WEBHOOK_SSL_VERIFY:是否驗證 HTTPS 憑證,預設 true;設為 false 時可接受自簽憑證。
  • MDT_FEEDBACK_REPORTER_ALLOWED_ROLES:允許回報的角色,預設 administrator。
  • MDT_FEEDBACK_REPORTER_ALLOWED_USER_IDS:額外允許回報的使用者 ID。
  • MDT_FEEDBACK_REPORTER_DENIED_USER_IDS:禁止回報的使用者 ID,優先權最高。
  • MDT_FEEDBACK_REPORTER_DENIED_PATHS:不輸出回報入口的 path prefix,預設只排除 /wp-login.php。
  • MDT_FEEDBACK_REPORTER_LOG_RETENTION_DAYS:本機 log/截圖保留天數,預設 30。
  • MDT_FEEDBACK_REPORTER_MAX_LOG_FILES:本機 log/截圖檔案數上限,預設 500。
  • MDT_FEEDBACK_REPORTER_DELETE_LOGS_ON_UNINSTALL:移除 Feedback Reporter 子外掛時是否刪除 log/截圖,預設 true。

使用風險

  • 此套件設計給可信任管理員、開發者與站台維護者使用,不適合開放給一般後台使用者。
  • 搜尋取代、資料庫最佳化、WordPress 重置、批次改作者、外掛/主題取代都會改寫資料或檔案;操作前請先確認備份可還原。
  • 主要工具箱會讀取並顯示 wp-config.php、.htaccess、.user.ini、PHP 設定與資料庫資訊。
  • ZipArchive、網路連線、檔案系統權限與主機 PHP 限制會影響打包、匯出、安裝、替換與前端回報轉送功能。

螢幕擷圖

安裝方式

  1. Upload the plugin files to the /wp-content/plugins/mxp-dev-tools/ directory, or install the plugin from the WordPress Plugins screen.
  2. Activate the main Dev Tools - Mxp.TW plugin through the Plugins screen in WordPress.
  3. Activate optional sub-plugins only when needed: Dev Tools: Snippets - Mxp.TW, Dev Tools: Site Manager - Mxp.TW, Dev Tools: Hide Login Page - Mxp.TW, or Dev Tools: Feedback Reporter - Mxp.TW.
  4. Open 「開發工具箱」 or the relevant sub-plugin admin page in the WordPress admin menu.
  5. For advanced behavior, define the documented MDT_* constants in wp-config.php before WordPress loads.

常見問題集

Why are there multiple plugin entries after installation?

The package intentionally contains a main plugin plus optional sub-plugins. This lets a site enable only the tools it needs while keeping one shared release package and update path.

Should I activate every sub-plugin?

No. Activate the main toolbox for development and maintenance tools. Activate Snippets, Site Manager, or Hide Login Page only when the site needs those behaviors, because each sub-plugin changes runtime hooks.

Where are Snippets settings configured?

Most Snippets behavior is controlled with MDT_* constants defined before WordPress loads, usually in wp-config.php. Some behavior also has filters documented in the source.

Will observed HTTP_HOST domains be shown on the domain expiry dashboard?

No by default. Since 3.5.9, MDT_DOMAIN_EXPIRY_OBSERVE_HOSTS defaults to false, and observed-only hosts are kept behind a separate detail page instead of the main dashboard list.

How do I add extra domains to the expiry check?

Define MDT_DOMAIN_EXPIRY_EXTRA_DOMAINS in wp-config.php as an array or comma-separated string.

How do I change the hidden login URL?

Define MDT_LOGIN_PATH before WordPress loads. The default slug is admin-staff.

Is Site Manager passwordless login safe to share?

No. The exported site string includes the passkey used to create login tokens. Treat it like an administrator credential and share it only through trusted channels.

How do I configure Feedback Reporter?

Activate the Feedback Reporter sub-plugin. The reporter is enabled by default after activation and can save local logs/screenshots even before a webhook is configured; define MDT_FEEDBACK_REPORTER_ENABLE as false to disable it. Set MDT_FEEDBACK_REPORTER_WEBHOOK_URL before WordPress loads when you want external notifications. auto detects Discord and Slack incoming webhook URLs; set MDT_FEEDBACK_REPORTER_WEBHOOK_FORMAT to generic, discord, or slack only when you need to force a payload type. By default the webhook must be HTTPS with a valid certificate; set MDT_FEEDBACK_REPORTER_WEBHOOK_REQUIRE_HTTPS or MDT_FEEDBACK_REPORTER_WEBHOOK_SSL_VERIFY to false only for trusted internal/self-signed receivers. Use MDT_FEEDBACK_REPORTER_ALLOWED_ROLES, MDT_FEEDBACK_REPORTER_ALLOWED_USER_IDS, and MDT_FEEDBACK_REPORTER_DENIED_USER_IDS to limit who can submit reports.

Does Feedback Reporter expose my webhook secret to visitors?

No. The browser only receives the local REST endpoint and nonce. WordPress sends the webhook server-side and signs it with MDT_FEEDBACK_REPORTER_WEBHOOK_SECRET when configured.

Do I need to back up before using database or replacement tools?

Yes. Database search/replace, optimization, cleanup, reset, bulk author changes, and file replacement tools can modify production data or files. Always keep a verified backup before running destructive actions.

使用者評論

2017 年 2 月 17 日
頭香還是自己來XD
閱讀全部 1 則使用者評論

參與者及開發者

以下人員參與了開源軟體〈一介資男(Mxp.TW) 開發工具箱〉的開發相關工作。

參與者

變更記錄

3.6.5

  • Feedback Reporter Logs 列表新增截圖縮圖,詳細頁新增大型截圖預覽;圖片透過後台權限與 nonce 保護的 admin-post.php endpoint 讀取,保留既有私有 log 目錄保護。
  • 修正 WordPress.org Test Preview 藍圖:先安裝並啟用 mxp-dev-tools,再啟用 Feedback Reporter 子外掛,避免 Playground 在外掛尚未安裝時執行 activatePlugin 造成 Plugin file does not exist。

3.6.4

  • 修正 Feedback Reporter 捲動頁面的 viewport 截圖:以暫存 viewport 舞台擷取目前畫面,並把 fixed/sticky 元素依實際視窗座標重疊,避免 DDEV 固定底部操作列在桌機與手機截圖中位移或遮蓋錯誤。
  • 移除標註視窗中的「貼上截圖」按鈕;保留 Ctrl/⌘+V paste 事件與「上傳截圖」fallback,避開瀏覽器 Clipboard API 權限不一致造成的空按鈕體驗。

3.6.3

  • 修正 Feedback Reporter 自動截圖範圍:截圖前不再先鎖定頁面捲動,並以目前 viewport 捲動位置裁切,避免回報內容誤抓頁面頂端。
  • 新增截圖取代功能:標註視窗可上傳 PNG/JPEG/WebP,或在支援的瀏覽器按 Ctrl/⌘+V 從剪貼簿貼上圖片。
  • 強化替代截圖流程的 RWD 介面、圖片尺寸壓縮、格式檢查與錯誤提示,讓桌機、手機與不同瀏覽器都有檔案上傳 fallback。

3.6.2

  • Feedback Reporter 啟用子外掛後預設可直接回報並保存本機 log/截圖;MDT_FEEDBACK_REPORTER_ENABLE=false 仍可覆寫關閉。
  • Feedback Logs 頁面新增 webhook 設定提醒:未設定時顯示通知,已設定時顯示目前通知類型與 host。
  • 新增 Slack incoming webhook 自動偵測與 MDT_FEEDBACK_REPORTER_WEBHOOK_FORMAT=slack,使用 JSON + Block Kit 送出摘要與本機 log/截圖路徑。
  • 新增 WordPress Playground assets/blueprints/blueprint.json,支援 WordPress.org 外掛頁即時預覽。
  • 移除外部服務依賴說明段落。

3.6.1

  • 更新 Feedback Reporter vendored SnapDOM 至 3.2.0。
  • 確認 SnapDOM 3.2.0 與現有截圖流程相容:新增 ESM 動態載入 fallback,維持 snapdom(target, options)、toBlob()、viewport clip、ignore selector 與遮罩流程可正常運作。
  • 強化 Feedback Logs 後台檢視頁:重要資訊分卡片顯示、webhook 狀態 badge、補送/刪除操作、Raw JSON 與手機版 RWD 呈現。

3.6.0

  • 新增 Dev Tools: Feedback Reporter - Mxp.TW 子外掛,支援前台與後台登入用戶截圖、標註、填寫描述與 webhook 回報。
  • 新增 MDT_FEEDBACK_REPORTER_* 常數設定:啟用狀態、後台低干擾入口、webhook、HTTPS/憑證嚴格度、role/user ID 限制、截圖大小、遮罩 selector、rate limit、log 保留天數與檔案數上限。
  • 新增本機 JSON log + screenshot 檔案薄紀錄與每日清理機制;管理員可從「工具 Feedback Logs」讀取檔案型回報紀錄、檢查 webhook 送出狀態、手動補送 webhook,並刪除紀錄;移除子外掛時預設刪除 log。
  • 強化 Feedback Reporter 送出流程:後端在 webhook 前重新壓縮超限截圖,並將截圖頁面的 SEO meta/canonical/Open Graph/Twitter/H1/JSON-LD 型別摘要一併寫入 log 與 webhook。

3.5.9

  • 調整網域到期檢查的 observed host 行為:預設不再自動記錄 HTTP_HOST,可用 MDT_DOMAIN_EXPIRY_OBSERVE_HOSTS 啟用。
  • 新增 observed host 180 天保留規則、獨立檢視頁與刪除操作,避免非主要網域直接出現在控制台。

3.5.8

  • 新增網域到期檢查資訊的註冊商、註冊日期、網域狀態、DNSSEC 與 Name Server 等基本細節。
  • 調整網域到期通知文案,改用「已進入到期前提醒」並加入註冊商資訊,方便確認續約平台。

3.5.7

  • 調整網域到期檢查資訊顯示完整主機名稱,避免子網域被簡化為主網域。
  • 調整網域到期通知規則,僅通知 home_url / site_url 類型來源,純 observed_host 不寄送通知。

3.5.6

  • 調整網域到期檢查資訊的後台文案,移除不易理解的英文術語。