WP Manifestindependent plugin directory
manifest / editor / html-error-guard

HTML Error Guard

HTMLHintで投稿本文をリアルタイムにチェックし、エラーがある間は更新ボタンをロックします。警告モード・投稿単位の無効化・ルール設定つき。

★ 0stars

Install

Download source zip No release zip yet

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.zip
Updates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.

HTMLエラーを見逃したまま更新ができなくなるWordPressプラグイン。 検知エンジンには実績のあるOSSリンター HTMLHint(MITライセンス・同梱 v1.9.2)を使用しています。

動作イメージ

  1. リアルタイム検知 — 編集中の本文をHTMLHintが常時チェックし、エラーがあると専用サイドバー(クラシックエディターではメタボックス)に「◯行目: タグの対応エラー」のように日本語で表示されます。サイドバーはエディター右上のHTMLアイコン、または画面上部の通知の「エラー一覧を開く」ボタンから開けます(ブロックを選択しても閉じません)。
  2. 直し方のヒント — 各エラーに「終了タグ </div> が不足しています。対応する開始タグで囲みたい範囲の最後に追加してください」のような具体的な修正ヒントを表示します。
  3. 公開・更新ロック(ブロックモード時) — エラーがある間は「公開」「更新」がロックされ、エラーのある内容を公開できません。下書き保存とプレビューは常に可能なので、書きかけの内容が失われることはありません。エラーを直した瞬間にロックが解除されます。
  4. エラー箇所へジャンプ — 一覧のエラーをクリックすると、Gutenbergではエラーを含むブロックが選択されてスクロールし、クラシックエディターではテキストモードの該当行が選択されます(ビジュアルモードで編集中の場合は自動でテキストモードに切り替わります)。
  5. 人が修正して更新 — 行番号とエラー内容・該当箇所の抜粋を頼りに手で修正し、通常どおり更新します。本文を自動で書き換える機能はないため、プラグインがコンテンツを壊すことはありません。

全記事一括チェック

「設定 → 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)のみで、カスタムフィールドやページビルダーのコンテンツは対象外です。

インストール

  1. html-error-guard フォルダーごと wp-content/plugins/ にアップロードします。
  2. 「プラグイン」画面で有効化し、「設定 → 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 — エラー表示のデザイン刷新、該当箇所の抜粋を前後行つきに強化、クラシックエディターのジャンプ修正