
內容簡介
Faultwright 是一款強大的錯誤監控外掛,能即時顯示網站錯誤來源、發生時間及可能的責任外掛,並提供解決建議,無需外部帳號或開發者協助。
【主要功能】
• 監控 PHP 錯誤,包括致命錯誤與例外
• 收集 JavaScript 錯誤,過濾瀏覽器擴展噪音
• 檢測 WP-Cron 健康狀態與過期事件
• 追蹤電子郵件發送失敗與 SMTP 錯誤
• 記錄更新失敗,包括外掛與佈景主題
• 提供錯誤的簡單解釋與解決建議
外掛標籤
開發者團隊
② 後台搜尋「Faultwright – Error Monitor, Cron & Email Failure Alerts」→ 直接安裝(推薦)
原文外掛簡介
“The site was fine yesterday.” Faultwright shows you what broke, when it started, which plugin is probably responsible, and what to do about it. No external account, no developer required.
Five failure sources, one timeline
PHP errors – fatals, uncaught exceptions and warnings, with the file, line and a trimmed stack trace. An optional one-file early loader captures fatals raised while other plugins start up. New lines in debug.log are imported too.
JavaScript errors – a 1.5 KB collector (no cookies, no dependencies; sampling uses sessionStorage) reports browser errors, attributed to the plugin or theme that shipped the script. Browser-extension noise is filtered out.
Cron health – detects a dead WP-Cron, overdue events, events whose plugin was removed, and scheduled jobs that crash.
Email failures – every wp_mail failure plus SMTP-plugin errors, and a warning when orders or form entries happen but no email goes out.
Update failures – plugin, theme and core updates that could not be installed, auto-update failures and plugins that crash on activation.
REST / AJAX 5xx – API routes and admin-ajax actions that return server errors.
“What changed right before it started”
Faultwright keeps a change log: plugin and theme installs, updates, activations, deletions, theme switches, WordPress and PHP version changes, permalink and URL changes. Every issue shows the changes in the 48 hours before its first occurrence, ranked by likelihood.
Plain-English explanations
Over forty built-in explanations cover the errors people actually hit: memory exhausted, maximum execution time, undefined function, cannot redeclare, headers already sent, SMTP authentication, cURL timeouts, mixed content, “$ is not defined”, chunk load errors and more. Each one says what it means, the likely cause, what to try, and when to contact a developer or your host.
For anything else, an optional Explain with AI button sends the error details to an AI provider. On WordPress 7.0 and later it can use the AI provider you connect under Settings → Connectors, through WordPress’s built-in AI Client, so there is no separate key to manage. On any version you can instead bring your own key for OpenAI, Anthropic, Google Gemini or any OpenAI-compatible endpoint (Ollama, Groq, OpenRouter). Nothing is ever sent automatically.
Everything else
Issues grouped by fingerprint with count, first/last seen, affected URLs and roles, Open / Resolved / Ignored status and notes. Resolved issues reopen automatically if the error comes back.
Timeline of errors and changes on one axis (24h / 7d / 30d).
Cron screen with next run, overdue flags, last duration and Run now (defers to WP Crontrol when installed).
Dashboard widget with a 7-day sparkline and an admin-bar badge with the open critical count.
Daily or weekly digest email and an immediate email for the first occurrence of a new critical issue (throttled). Both are on by default, go to the site admin email until you enter recipients, and can be switched off under Settings → Notifications.
Site Health tests: cron running, no fatals in 7 days, emails sending.
WP-CLI: wp faultwright issues list, wp faultwright issues show
Privacy by default: error records hold no user IDs, email addresses, IP addresses or request bodies, and query strings are stripped from URLs. The change log records which logged-in user made a change. Retention is 30 days for events and 90 days for changes.
Flood protection: per-request and per-minute caps, a file fallback if the database is unavailable, and a kill-switch constant.
Developer hooks
faultwright_ignore_error, `faultwright_js_noise_patterns`, `faultwright_explanations`, `faultwright_severity`, `faultwright_event_recorded`, `faultwright_notification_channels`, `faultwright_capability`, `faultwright_ai_prompt`, `faultwright_retention_days`, `faultwright_mail_activity_count`.
More plugins by Emtiaz Zahid
Launchmender: 44 pre-launch checks with one-click fixes, a manual checklist and a client handoff report
Stalemender: content audit that gives every post a Freshness Score (0–100) and tells you why
Waymender: finds broken links without hammering your server, logs 404s and fixes both in one click
Anchormender: internal link suggestions while you write, an orphan post report and bulk internal linking
Repeatwright: RFM customer segments, repeat rate, LTV and cohort retention from your own WooCommerce orders
Hoverbuy: sticky add to cart bar with image, price and quantity once the real button scrolls away, variable products included
External services
Faultwright runs entirely on your own server. It has no telemetry, no account, no licence check and no update server of its own. The only time anything is sent to a third party is the optional “Explain with AI” feature described below.
Explain with AI (optional, off by default)
Some errors have no built-in explanation. For those, an administrator can turn on “Explain with AI” under Faultwright → Settings → Explanations and choose where requests go:
WordPress AI (WordPress 7.0 and later, the default for new installs there): the request goes through WordPress’s built-in AI Client to the AI provider you connected under Settings → Connectors. WordPress chooses the provider and model and keeps the API key; Faultwright stores no key for it. The connectors WordPress offers are for the providers listed below, and the terms and privacy policy of the one you connected apply.
Your own key: you paste an API key for one of the providers below, and the request goes directly from your server to that provider.
They then press “Explain with AI” followed by “Send” on an individual issue. None of the error details are sent automatically, on a schedule, or without that second click. With WordPress AI, pressing “Explain with AI” (and again “Send”) can make WordPress ask the connected provider which models it offers; that request carries the API key but none of the error details. Before sending, the screen shows a rough token count and where the request goes: the provider and model you chose, or the provider connected under Settings → Connectors.
On each “Send” click, one request with the error details is sent, containing:
the error message (as produced by the failing code, so it may contain whatever that code put in it), its severity, source (PHP, JavaScript, cron, email, update or API) and the request type (front end, admin, cron, REST, AJAX, CLI);
the file path and line number where the error occurred, and the file paths and function names from the stack trace (relative to your WordPress folder, never file contents, never function arguments);
the plugin or theme Faultwright attributed the error to;
your WordPress and PHP version numbers;
the API key, in the request header (your own key, or the one WordPress holds for the connected provider), so the provider can bill you.
It does not send page URLs, visitor roles, IP addresses, user accounts, email addresses, form data or database contents. Requests made with your own key do not include your site URL; requests made through WordPress AI use WordPress’s standard HTTP User-Agent, which includes your site’s address. The provider’s reply is stored in your own database with the issue and is deleted with it. You can adjust or strip the prompt with the faultwright_ai_prompt filter.
The request goes only to the provider you selected, or with WordPress AI to the one you connected:
OpenAI (api.openai.com) – Terms: https://openai.com/policies/terms-of-use – Privacy: https://openai.com/policies/privacy-policy
Anthropic (api.anthropic.com) – Terms: https://www.anthropic.com/legal/commercial-terms – Privacy: https://www.anthropic.com/legal/privacy
Google Gemini (generativelanguage.googleapis.com) – Terms: https://ai.google.dev/gemini-api/terms – Privacy: https://policies.google.com/privacy
OpenAI-compatible endpoint – any base URL you enter, for example a self-hosted Ollama, Groq or OpenRouter. Data goes to that server under that operator’s terms and privacy policy, which you are responsible for reviewing. If the base URL is left empty this option sends to OpenAI.
If you use your own key, it is stored encrypted in the WordPress options table using your site’s authentication salts, is never displayed again beyond its last four characters, and is removed when you clear it or uninstall the plugin.
Everything else stays on your site
The browser error collector, loaded on front-end and admin pages when JavaScript capture is on, posts error messages, script URLs, line numbers, stack traces, the page URL with its query string removed and the viewport size to your own site’s REST API only. Sampling is decided per browser session with sessionStorage; no cookies are set. Your server keeps the visitor’s role and browser family, not IP addresses or full user-agent strings.
Alert and digest emails go through your own site’s wp_mail() to the addresses you enter, or to the site admin email if none are set.
The plugin links to WordPress.org for reviews; following that link is an ordinary browser visit.
