Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/terasakisd/html-error-guard/archive/refs/heads/main.zipUpdates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.
HTMLエラーを見逃したまま更新ができなくなるWordPressプラグイン。 検知エンジンには実績のあるOSSリンター HTMLHint(MITライセンス・同梱 v1.9.2)を使用しています。
動作イメージ
- リアルタイム検知 — 編集中の本文をHTMLHintが常時チェックし、エラーがあると専用サイドバー(クラシックエディターではメタボックス)に「◯行目: タグの対応エラー」のように日本語で表示されます。サイドバーはエディター右上のHTMLアイコン、または画面上部の通知の「エラー一覧を開く」ボタンから開けます(ブロックを選択しても閉じません)。
- 直し方のヒント — 各エラーに「終了タグ
</div>が不足しています。対応する開始タグで囲みたい範囲の最後に追加してください」のような具体的な修正ヒントを表示します。 - 公開・更新ロック(ブロックモード時) — エラーがある間は「公開」「更新」がロックされ、エラーのある内容を公開できません。下書き保存とプレビューは常に可能なので、書きかけの内容が失われることはありません。エラーを直した瞬間にロックが解除されます。
- エラー箇所へジャンプ — 一覧のエラーをクリックすると、Gutenbergではエラーを含むブロックが選択されてスクロールし、クラシックエディターではテキストモードの該当行が選択されます(ビジュアルモードで編集中の場合は自動でテキストモードに切り替わります)。
- 人が修正して更新 — 行番号とエラー内容・該当箇所の抜粋を頼りに手で修正し、通常どおり更新します。本文を自動で書き換える機能はないため、プラグインがコンテンツを壊すことはありません。
全記事一括チェック
「設定 → HTMLエラーチェック → 全記事一括チェック」の「スキャン開始」で、対象投稿タイプの全記事(公開・予約・下書き・レビュー待ち・非公開)を現在のルール設定でまとめてチェックできます。
- 導入時に実行すれば、過去に公開済みの記事に潜んでいるHTMLエラーも一覧化できます
- 結果はエラー数の多い順に表示され、タイトルをクリックするとその記事の編集画面が開きます(編集画面ではエラー詳細と該当箇所へのジャンプが使えます)
- チェックは管理画面のブラウザー内で実行されるため、記事内容が外部に送信されることはなく、サーバー負荷も記事の取得のみです
段階導入のための機能
- 警告モード — エラーを表示するだけでブロックしないモードです。慎重に導入したい場合は、最初の1〜2週間このモードで誤検知が出ないか確認してから標準のブロックモードに戻す運用ができます。
- 投稿単位の無効化 — 誤検知でどうしても更新できない場合、エディターの「この投稿はHTMLチェックを無効にする」で回避できます。無効化した投稿は設定画面に一覧表示されるので、乱用や誤検知の傾向を後から確認できます。
- ルール単位のオン/オフ — サイトに合わないルールは設定画面でオフにできます。
設定画面
「設定 → HTMLエラーチェック」で以下を変更できます。
| 項目 | 内容 | 初期値 |
|---|---|---|
| 動作モード | ブロックモード / 警告モード | ブロックモード |
| 対象の投稿タイプ | 公開投稿タイプから選択 | 投稿・固定ページ |
| チェックするルール | 下表参照 | ★のルール |
ルール一覧
| ルール | 内容 | 初期 |
|---|---|---|
tag-pair |
タグの閉じ忘れ・対応する開始タグのない終了タグ | ★ |
id-unique |
id属性の重複 | ★ |
attr-no-duplication |
同一タグ内での属性の重複 | ★ |
src-not-empty |
src属性が空 | ★ |
tag-no-obsolete |
廃止されたタグ(center・fontなど) | |
spec-char-escape |
本文中の < > のエスケープ漏れ(誤検知しやすい) |
|
attr-value-double-quotes |
属性値をダブルクォートで囲む | |
tagname-lowercase / attr-lowercase |
タグ名・属性名の小文字統一 |
仕組みと適用範囲
- チェックとロックはエディター(管理画面)内のJavaScriptで行います。Gutenbergでは
lockPostSavingで公開・更新をロックし、クラシックエディターでは「公開/更新」ボタンを無効化(グレーアウト)したうえで、保険としてフォーム送信も停止します。下書き保存とプレビューはどちらのエディターでも制限しません。 - したがって防げるのは「人がエディターでHTMLエラーを見逃したまま更新する」ことです。REST APIを直接使う外部連携やWP-CLIによる更新はチェックの対象外です。
- Gutenbergのブロックコメント(``)は誤検知しません。チェック対象は本文(post_content)のみで、カスタムフィールドやページビルダーのコンテンツは対象外です。
インストール
html-error-guardフォルダーごとwp-content/plugins/にアップロードします。- 「プラグイン」画面で有効化し、「設定 → HTMLエラーチェック」で対象とモードを確認します。
自動アップデート
GitHubリポジトリ(terasakisd/html-error-guard)のリリースと連携した自動アップデートに対応しています(Plugin Update Checker同梱)。新しいリリースを作ると、導入済みの全サイトに更新が配信されます。リリースの作り方は RELEASE.md を参照してください。
カスタマイズ用フック
| フック | 説明 |
|---|---|
heg_post_types |
チェック対象の投稿タイプを上書き |
制限事項(v0.5.0)
- 「この投稿はHTMLチェックを無効にする」の切り替えは投稿の編集権限があれば誰でも可能です(切り替えた投稿は設定画面で確認できます)。
- HTMLHintのエラー詳細メッセージは英語です(種別ラベルは日本語で表示されます)。
- クイック編集からの更新はチェックされません(本文はクイック編集では変更できないため実害はほぼありません)。
動作要件
- WordPress 6.0 以上 / PHP 7.4 以上
ライセンス
- プラグイン本体: GPL-2.0-or-later
- 同梱の HTMLHint: MIT License(
assets/vendor/HTMLHINT-LICENSE)
更新履歴
- 0.9.2 — 不具合修正2件: (1) クラシックエディターで一度プレビューすると、エラー修正や投稿単位の無効化をしても公開・更新ボタンが無効のまま復活しない問題 (2) 設定でルールをすべてオフにすると、HTMLHintが標準ルール(doctype-first等)にフォールバックして全記事がエラー扱いになる問題
- 0.9.1 — 自動アップデート配信の動作確認リリース
- 0.9.0 — GitHubリリース連携の自動アップデートに対応(Plugin Update Checker同梱)
- 0.8.0 — 全記事一括チェックを追加
- 0.7.x — エラー表示のデザイン刷新、該当箇所の抜粋を前後行つきに強化、クラシックエディターのジャンプ修正