運用・更新管理

コンテンツ更新管理

その料金表、最後に誰が確認しましたか。
記事1本にも、記事の中の表1つにも、担当者と次回確認日を貼っておけます。
期限が来たら通知し、確認されなければ表示を止める。原稿の文章は書き換えません。

コンテンツ更新管理は、公開したあとのコンテンツの棚卸しを仕組みにするWordPressプラグインです。
古くなったら困る情報に「担当者」と「次回確認日」を貼っておくと、期限が近づいたときにメール・Slack・Chatworkで担当者へ届き、管理画面には「本日期限」「期限超過」「承認待ち」が件数で並びます
貼る単位は記事まるごとだけではありません。記事の中の料金表ブロック1つ、ACFフィールド1つ、カスタムフィールド1つ——どの単位でも同じ設定・同じワークフロー・同じ履歴で回せます。
確認されないまま期限を過ぎたときの扱いも決めておけます。記事は下書き・非公開・指定URLへのリダイレクト、記事の一部ならその範囲だけを非表示か差し替えに。止めるのは公開状態と表示だけで、原稿の文章は書き換えません。

「最終更新日」を見ても、中身が確認されたかどうかは分かりません

料金を改定した、法令が変わった、サービス名が変わった。そのたびに「どの記事が影響を受けるのか」を人が思い出して探すことになります。棚卸し用のスプレッドシートを作っても、担当者が異動すれば更新されなくなり、半年後には誰も見ていません。そして困るのは、たいてい記事全体ではなく「記事の中の料金表だけ」が古い——という形で起きることです。

よくある運用
  • 料金を改定したのに、古い金額の記事がどこかに残っている気がする
  • 「最終更新日」は分かるが、中身が確認された結果なのかは分からない
  • 棚卸し用のスプレッドシートを作ったのに、誰も更新しなくなった
  • 担当者が異動して、どのページが誰の持ち物だったのか分からない
  • 記事全体はまだ使えるのに、料金表や注意事項の部分だけが古い
このプラグイン導入後
  • 古くなったら困る情報に、担当者と次回確認日が貼ってある
  • 期限が近づけば担当者に通知が届き、管理画面には件数で出る
  • 「見たけれど変更は不要だった」まで確認の記録として残る
  • 確認されないまま期限を過ぎたら、決めておいた扱いに切り替わる
  • 担当者が休んでも、権限を持つ人が確認を代われる

やることは4つだけ — 貼る、知らせる、確認する、次へ進める

機能を1つずつ説明する前に、全体像から。このプラグインがやるのは次の4つで、どの機能もこのどれかに属します。

この流れから外れた——つまり確認されないまま次回確認日を過ぎたときに何をするかも、あらかじめ決めておけます。記事なら下書き・非公開・別URLへのリダイレクト、記事の一部ならその範囲だけを非表示にするか、差し替え文言を出すか。何もしない、という選択肢もあります(そしてそれが初期値です)。

読者に見えるページには通常なにも出力しません。表示が変わるのは、管理対象にした記事や範囲が期限を過ぎて、かつ期限切れ処理として非表示・差し替え・リダイレクトを選んでいたときだけです。期限切れ処理の初期値は投稿・管理ブロック・ACFフィールド・カスタムフィールドの4系統すべて「何もしない」なので、有効化しただけでは何も止まりません。

記事まるごとでも、記事の中の料金表1つでも。棚卸ししたい単位で貼れます

このプラグインの管理単位は4種類あります。1つの投稿に対して、どの単位でも貼れます(記事まるごとの管理は1投稿に1つ、ブロックとフィールドはいくつでも)。

そして4種類とも、設定できる項目は同じです——担当者・承認者・エスカレーション先・次回確認日・更新頻度・重要度・通知・期限切れ処理・確認メモ・参照URL。運用ステータス8種も、期限状態4種も、履歴も共通です。違うのは「期限が来たときに何をするか」の選択肢だけで、それが次の節の話になります。

1つの記事の中で「料金表は3か月ごと、注意事項は1年ごと」

本文にブロック「コンテンツ更新管理セクション」を置いて料金表を囲むと、その範囲がそのまま1つの管理単位になります。同じ記事にいくつ置いても互いに独立するので、料金表は3か月ごと・営業時間は6か月ごと・注意事項は1年ごと、と別々の期限と担当者を持たせられます。記事全体を止めずに、古くなる部分だけを管理できるということです。

  • 複製しても、別の記事へ貼り付けても、二重管理になりません:それぞれ独立した管理単位として扱われ、コピー元の担当者と履歴はそのまま残ります。
  • ブロックの管理設定は、投稿の「更新」とは別に保存します:サイドバーの「管理設定を保存」ボタンで確定します。未保存のまま投稿を更新したときや、ブロックの選択を外したときには、その旨がエディタ上部に出ます。
  • ブロックを消しても履歴は消えません:本文から消えた管理対象は削除ではなく無効化され、その理由が履歴に残ります。元に戻せば再び有効になります。
  • 編集画面では中身が隠れません:期限を過ぎているブロックには赤い枠と「期限切れ」バッジ、そして「この管理対象は期限を過ぎています。フロントの表示は期限切れ処理の設定に従います。」という警告が出るだけなので、直すべき場所がその場で見えます。
  • 管理対象の一覧から、該当ブロックへ直行できます:詳細画面の「該当ブロックを編集」を押すと、編集画面が開いてそのブロックが選択された状態になります。
コンテンツ更新管理セクション — 記事の中の料金表だけを1つの管理対象にする
コンテンツ更新管理セクション — 記事の中の料金表だけを1つの管理対象にする

ブロックを置いただけでは管理は始まりません(自動保存やプレビューでは管理対象を作らず、正規の投稿保存で初めて管理対象になります)。管理ブロックだけは管理対象名が必須で、担当者と次回確認日を入れるまで管理設定を保存できません。ブロックの入れ子はできず、同期パターンの中では管理対象になりません。ブロックが使えるのは、管理対象に設定した投稿タイプの、ブロックエディタの本文だけです。

期限が来たときの扱いを、単位ごとに選べます

「期限切れ処理」は、確認しないまま次回確認日を過ぎたときに何をするかの設定です。選択肢は管理単位ごとに違います。画面に出るとおりに並べると、こうなります。

  • 投稿(5つ):「何もしない」/「管理画面で警告のみ」/「投稿を下書きへ変更」/「投稿を非公開へ変更」/「指定 URL へリダイレクト」
  • 管理ブロック(4つ):「何もしない」/「管理画面で警告のみ」/「ブロックを非表示」(ブロックのサイドバーでは「フロントで非表示」と表示されます)/「代替メッセージを表示」
  • ACF フィールド(3つ):「何もしない」/「管理画面で警告のみ」/「通知のみ」
  • カスタムフィールド(3つ):ACFと同じく「何もしない」/「管理画面で警告のみ」/「通知のみ」

選ぶのは管理対象ごとなので、「終了したキャンペーン記事は下書きへ、統合した旧記事は新しい記事へ301リダイレクト、社内向けの手順書は管理画面で警告だけ」を1つのプラグインで同時に回せます。全部を同じ強さで止める必要はありません。

記事の一部を管理しているときは、その範囲だけをフロントから消すか、「代替メッセージを表示」で差し替えるかを選べます。差し替え文言の初期値は「現在、この情報は確認中です。」で、全体設定でもブロックごとでも変えられます。黙って消すのではなく「いま確認中です」と読者に伝えられる、ということです。

差し替えは表示のときだけ行う処理なので、本文は書き換わりません。しかも差し替えを行う場所がひとつしかないため、ページ表示だけでなくフィード・抜粋・公開REST APIの結果にも同じように効きます。「サイトでは消えているのにRSSには残っている」が起きません。

  • 投稿編集画面 — 担当者・次回確認日・更新頻度・期限が来たときの扱いを1か所で
    投稿編集画面 — 担当者・次回確認日・更新頻度・期限が来たときの扱いを1か所で
  • フロントの作例 — 期限が切れた料金表が「現在、この情報は確認中です。」に差し替わっている
    フロントの作例 — 期限が切れた料金表が「現在、この情報は確認中です。」に差し替わっている

「投稿を下書きへ変更」「投稿を非公開へ変更」「指定 URL へリダイレクト」が効き始めるのは、毎時の定期処理が期限切れ処理を実行したあとです(リダイレクトはさらに最大5分のキャッシュがあります)。「管理画面で警告のみ」と、管理ブロックの非表示・代替メッセージは、期限を過ぎた時点から画面に反映されます。いずれも解除されるのは確認を完了したときだけで、次回確認日を先へずらしても外れません。下書き・非公開にした投稿を公開へ戻すのは「以前の公開状態へ戻す」の明示操作で、自動では戻りません(確認が終わったら勝手に再公開されていた、が起きない設計です)。

止めるのは公開状態と表示だけ。原稿の文章には手を入れません

公開記事を止められる仕組みを入れるとき、いちばん怖いのは「本文が壊れること」です。このプラグインが投稿単位の管理でWordPressに渡すのは、投稿IDと投稿ステータスだけです。期限切れ処理と「以前の公開状態へ戻す」の2か所で投稿を更新しますが、どちらも渡すのはこの2つで、本文・タイトル・抜粋には触れません。フロント表示に割り込むフィルター(the_content)も1つも登録していません。

リダイレクトも投稿ステータスを変えません。読者を指定したURLへ送りつつ、その記事をサイト内検索・フィード・アーカイブ・ブログ投稿一覧から外すだけです。読者が古い記事にたどり着く経路そのものが閉じます。

1点だけ、範囲を正確に書いておきます。記事の一部を管理する「コンテンツ更新管理セクション」ブロックを使う場合は、複製されたブロックを別の管理対象として区別するために、保存時にブロックへ管理IDが書き込まれます(本文の文章そのものは変わりません)。投稿単位・ACFフィールド・カスタムフィールドの管理では、本文にも値にも書き込みません。

ACFフィールドとカスタムフィールドの期限切れ処理が3択しかないのも同じ理由です。フィールドの値がどのテーマ・プラグインから出力されるか分からない以上、値の削除も自動非表示もしません。投稿編集画面のフィールド用メタボックスにも「フィールドの値は期限切れでも変更されません。」と明示されています。

入れた初日に、公開中の記事が止まることはありません

この製品は「公開記事を下書きに落とせる」機能を持っています。だから初期状態は徹底して安全側に倒してあります。設定作業を後回しにしても、事故が起きないという意味です。

  • 有効化した時点で管理対象は0件です:設定画面で決めるのは「管理対象にできる投稿タイプの候補」までで、管理対象は投稿編集画面・ブロックの配置・運用ルールの適用で作られます。サンプルのルールや管理対象が勝手に入ることもありません。
  • 期限切れ処理の初期値は、4系統すべて「何もしない」です:投稿・管理ブロック・ACFフィールド・カスタムフィールドのどれも、明示的に変えるまで何も起きません。
  • 期限当日通知の初期値は「送らない」です:送るように設定を変えたときにだけ届きます。
  • 履歴保持期間の初期値は0(無期限)です:期間を設定しない限り、履歴は1件も消えません。
  • アンインストール時のデータ削除の初期値は「すべてのデータを保持」です:プラグインを停止(無効化)しただけでは何も消えず、止まるのは定期処理だけです。

記事の公開状態が変わるのは、その記事を管理対象にしたうえで、期限切れ処理として「投稿を下書きへ変更」または「投稿を非公開へ変更」を明示的に選び、さらに次回確認日を過ぎたとき——この3つが揃ったときだけです。まずは1本の記事に担当者と次回確認日を貼るところから始められます。

登場人物は4人。誰のボールかが、いつでも1人に決まります

棚卸しが止まる原因のほとんどは「誰の番か分からない」ことです。この製品では、管理対象1つごとに次の役を指名します。指名できるのはそれぞれWordPressユーザー1人ずつで、部署やチーム単位の割り当てには対応していません。

  • 担当者

    必須 / 中身を見る人

    確認作業を進め、結果を登録します。期限前・期限当日・期限超過の通知が届くのはこの人です。

    指名できる条件「確認を実行」の権限があり、かつその投稿を実際に開けること。人選の時点で弾かれるので、担当なのに画面が開けない行が混ざりません。

  • 承認者

    任意 / 通すか止めるかを決める人

    設定すると、担当者が結果を登録しても完了にならず、承認されるまで「承認待ち」で止まります。差し戻すときは理由が要ります。

    指名できる条件「承認を実行」の権限。担当者との兼任はできません(同じ人を両方に指定すると保存が通りません)。

  • エスカレーション先

    任意 / 遅れの連絡だけ受ける人

    期限を指定日数だけ超えたときに通知が届きます。通知を受け取るだけで、操作の権限は伴いません——だから上の図でもフローを動かす側には現れません。

    指名できる条件専用の権限は不要(候補に出るのは購読者以外のロールのユーザーです)。プラグインを触らせたくない責任者にも、遅れの連絡だけ届けられます。

  • 管理者

    サイト全体 / 設計する人

    設定・運用ルール・通知ログの3画面と、ダッシュボードを開けます。担当者・承認者・エスカレーション先の付け替えができるのはこの人だけです。

    指名できる条件指名する対象ではなく、WordPressのロールに紐づく権限です。詳しくは下の「誰に何を触らせるか」を参照。

担当者とエスカレーション先を同じ人にすることはできますが、保存時に警告が出ます(1人に集約すると、遅れに気づく人がいなくなるためです)。指名した人をユーザーごと削除した場合も一覧はエラーにならず、その行が「ユーザー未設定」と表示されます。指名した人がその管理対象を開けなくなっただけの場合は、その人は実在するので行の表示は変わりません。どちらも一覧の上部に、管理者向けの警告がそれぞれ別に出ます。

「見た/見ていない」ではなく、どこまで進んだかが残ります

運用ステータスは8種類(「未対応」「確認中」「修正中」「承認待ち」「差し戻し」「完了・更新あり」「完了・変更なし」「完了・対象外」)、操作は7種類(「対応開始」「修正開始」「確認結果を登録」「承認」「差し戻し」「承認依頼を取り下げ」「対応再開」)。確認作業の画面には、いまのステータスで実行できる操作だけが並びます。「今どれを押していいのか」を担当者が判断する必要がありません。

下の図で、紫の実線は人が押して動く区間灰色の破線はシステムが動かす区間です。自動で動くのは2か所しかありません。

  1. 未対応

    確認作業がまだ始まっていない状態。新しく管理対象を作ったときと、次の確認回に入ったときがここです。

    担当者「対応開始」を押す

  2. 確認中

    中身を見ている状態。直す必要があれば「修正開始」で修正中へ移り、そのまま結果を登録することもできます。

    担当者確認結果(「内容を更新した」/「確認したが変更不要」/「対応対象外と判断した」)を登録する

  3. ここで道が2つに分かれます

    分かれ目は承認者を設定しているかどうかだけです。担当者の操作は同じで、「承認依頼」という別のボタンはありません。

    承認者なし

    登録した時点で完了。確認結果に応じて「完了・更新あり」「完了・変更なし」「完了・対象外」のいずれかになります。

    承認者あり

    承認待ちへ進み、承認されるまで完了になりません。完了の種類は担当者の結論のままで、承認者は書き換えられません。

  4. 承認待ち

    承認者のボールになった状態。ここで初めて承認者に通知が届きます。

    承認者「承認」を押す

    本筋から外れる道が3つあります。 承認者が差し戻すと「差し戻し」へ(理由の入力が必須で、理由は履歴と通知本文の両方に残ります)。担当者が「対応再開」を押すと修正中へ戻ります。 承認を待たずに取り下げることもでき、これは担当者に限らず確認を実行できる人なら実行できます。 そして承認待ちの間に中身が書き換わったら、承認は自動で無効になり修正中へ戻ります——承認の空手形が通りません。
  5. 完了・更新あり/完了・変更なし/完了・対象外

    確認が終わった状態。この時点の中身が「確認基準値」として控えられ、以後の変更はここと比べて検出されます。

自動 次の確認回へ戻すのはシステムの仕事です。完了した管理対象は、次回確認日が期限接近の範囲に入ったあとの毎時の定期処理で「未対応」に戻り、確認回の番号が1つ進みます。人が翌回の予定を立て直す必要はありません。

  • 確認結果は3種類です:「内容を更新した」/「確認したが変更不要」/「対応対象外と判断した」。「見たけれど直す必要が無かった」が記録に残るので、次の担当者が同じ調査をやり直さずに済みます。
  • 承認待ちの間に中身が書き換わったら、承認は自動的に無効になります:ステータスが「修正中」へ戻り、履歴に「承認待ちの間に対象の内容が変更されたため、承認を無効化しました。」が残ります。承認の空手形が通りません。
  • 完了の種類は担当者の結論に従います:承認者ができるのは承認するか差し戻すかで、完了の種類を書き換えることはできません(確認結果が登録されていなければ承認自体ができません)。
  • 差し戻しには理由が必須です:空欄や空白だけでは通りません。理由は管理対象と履歴の両方に残り、差し戻しの通知本文にも載ります。
  • 担当者が休んでも運用が止まりません:作業を進められるかどうかを決めるのは、いまの運用ステータスと権限だけで、「担当者として指名されているか」は条件に入っていません。指名が効くのは通知の宛先と「自分の担当」画面の絞り込みです。

承認のやり取りを、3つの場面で通してみます

上の図は「対象がどの状態を通るか」を描いたものでした。ここでは縦の3本線が「担当者」「システム」「承認者」の持ち場で、横の矢印がその間を実際に行き来するものです。線の意味は上と同じで、実線は人が押した操作破線はシステムが送る通知——押した人がいない線です。

場面1/承認者を設定しているとき 担当者が確認を終えてから、完了になるまで
  1. 担当者 → システム 「確認結果を登録」を押す 「承認依頼」という別のボタンはありません
  2. 自動承認者がいるので完了にならず、「承認待ち」で止める
  3. システム → 承認者 承認依頼の通知 役割で決まる宛先は承認者だけ。管理対象で「メール」を選んでいれば承認者へ1通、Slack・Chatworkは選んだ接続へ届いて@承認者が付きます。確認コメントを書いていれば本文に載ります
  4. 承認者 → システム 「承認」を押す
  5. 自動「完了」へ。この時点の中身を「確認基準値」として控える 完了の種類(更新あり/変更なし/対象外)は担当者の結論のままで、承認者は書き換えられません
  6. システム → 担当者 承認完了の通知
場面2/差し戻されたとき 承認者が「まだ通せない」と判断した場合
  1. 承認者 → システム 「差し戻し」を押す 理由の入力が必須です。空欄や空白だけでは通りません
  2. 自動「差し戻し」へ。理由を管理対象と履歴の両方に残す
  3. システム → 担当者 差し戻しの通知 理由がそのまま本文に載るので、「何を直せばいいのか」を聞き返す往復が要りません
  4. 担当者 → システム 「対応再開」を押す 「修正中」へ戻ります。直したら、また「確認結果を登録」から場面1と同じ道を通ります
場面3/承認待ちの間に中身が書き換わったとき 人が押していないのに状態が動く、2か所のうちの1つ
  1. 担当者 → システム 対象の中身を更新する 承認とは関係のない、普通の編集です。編集したのが担当者でも別の書き手でも同じように働きます
  2. 自動承認を無効にして「修正中」へ戻す 履歴に「承認待ちの間に対象の内容が変更されたため、承認を無効化しました。」が残ります。承認者が見たものと違う中身が、承認済みとして通り抜けません

場面3では通知が飛びません(通知イベントは8種類で、承認の無効化はそこに含まれません)。気づく場所は管理対象の詳細画面と履歴です。

管理対象の詳細(確認作業画面) — 15行の表と、いま実行できる操作、そして履歴
管理対象の詳細(確認作業画面) — 15行の表と、いま実行できる操作、そして履歴

「承認依頼」という操作はありません。「確認結果を登録」が、承認者を設定していれば自動的に承認待ちへ送ります(承認者を設定していなければ、その時点で完了です)。承認は1人・1段階で、複数段階の承認や部署・チーム単位の割り当てには対応していません。画面のボタン名と履歴に残る名前は別で、たとえばボタンは「対応開始」、履歴には「確認作業開始」と出ます。担当者と承認者を同じ人にすることはできません。

「四半期ごとに見直す」を、カレンダー登録に頼らない

更新頻度を決めておくと、確認が完了したときに次回確認日が自動で先へ進みます。基準になるのは元の期限ではなく実際に確認が完了した日(承認者がいれば承認した日、いなければ確認結果を登録した日)です。月単位・年単位で加算した先にその日が存在しないとき(1月31日の1か月後など)は月末日へ丸めるので、日付が壊れません。

さらに、完了した管理対象は、次回確認日が「期限接近」の範囲に入った時点で自動的に「未対応」へ戻り、新しい確認回として履歴が分かれます。前回の確認で何があったかを、回ごとに切り分けて読めるということです。

更新頻度は 1〜999 と単位5種

単位は「更新頻度なし」「日」「週」「か月」「年」。「更新頻度なし」を選べば日付は自動では動かないので、1回きりの確認(キャンペーンの終了日など)にも使えます。

「期限接近」の物差しは自分で決める

設定の「期限接近の閾値(日)」で決めます(初期値7日・1〜90日)。変えるとダッシュボードのカードも一覧のバッジも絞り込みも、同じ規則で一斉に動きます

完了した対象が「未対応」へ戻るのは、次回確認日が期限接近の範囲に入ってから、しかも次の毎時の定期処理のときです(完了した瞬間に戻るわけではありません)。前回確認からの変更を検出しても次回確認日は動きません——「触ったから確認したことにする」が起きない設計です。期限を過ぎても運用ステータスが勝手に変わることもありません(作業がどこまで進んだかと、日付的にどうかは別の軸として扱います)。

管理画面を開いた瞬間に、「今日やること」が件数になる

ダッシュボードには集計カードが8枚並びます——「本日期限」「期限接近」「期限前」「期限超過」「承認待ち」「差し戻し」「前回確認後に変更あり」「重大・未対応」。どのカードを押しても、同じ条件で絞り込んだ管理対象一覧に着きます(件数と中身が必ず一致します)。「更新が止まっているページ」を探しに行く作業そのものが要らなくなります。

  • 一覧は12列:管理対象名・種類・投稿タイトル・投稿タイプ・担当者・承認者・重要度・運用ステータス・期限状態・次回確認日・最終確認日・前回確認後の変更。9軸で絞り込めて、1ページ50件です。
  • 期限状態は保存値ではなく、読み出すたびに今日の日付で計算し直します:定期処理が遅れているサイトでも、「期限超過なのに期限前と表示される」ことがありません。一覧が嘘をつかない、ということです。
  • 担当者の入口は「自分の担当」画面です:「すべて」を含む7つのタブ(本日期限・期限接近・期限超過・承認待ち・差し戻し・対応完了)で、自分が担当者の行だけが並びます(承認者・エスカレーション先として関わる行は「管理対象一覧」から開きます)。担当者になるライターに教えるのはこの1画面だけで運用が始まります。
  • 選んだ行にまとめて適用できます:一括操作は8種(担当者変更・承認者変更・エスカレーション先変更・次回確認日変更・更新頻度変更・重要度変更・通知設定変更・管理対象の無効化)。条件を満たさず飛ばした行は「権限が足りないため 2 件、担当者と承認者が同じため 1 件をスキップしました。」のように理由ごとの内訳で返ります。件数だけを返す一括操作と違い、あとで気づく事故になりません。
  • 設定が矛盾していると、気づく前に画面が教えてくれます:「メール通知を全体で切ったのにメールを選んでいる管理対象がN件」「期限当日通知が有効なのに通知チャンネルが未設定の管理対象がN件」「通知の送信先を解決できない管理対象がN件」「期限切れ処理が『管理画面で警告のみ』で確認が必要な管理対象がN件」を件数付きで出します。
  • ダッシュボード — 本日期限・期限超過・承認待ちが件数で並び、押せばその一覧へ
    ダッシュボード — 本日期限・期限超過・承認待ちが件数で並び、押せばその一覧へ
  • 管理対象一覧 — 12列と9軸の絞り込み。種類・期限状態・運用ステータスがひと目で分かる
    管理対象一覧 — 12列と9軸の絞り込み。種類・期限状態・運用ステータスがひと目で分かる

列見出しをクリックした並び替えやキーワード検索はなく、1ページの表示件数は50件で固定です。一括操作のチェックボックス列が出るのは、管理対象全体を管理する権限を持つ人(初期状態では管理者)だけです。ダッシュボードとライセンス画面を開けるのはサイトの管理権限を持つ人だけで、担当者は「自分の担当」から入ります。管理対象の詳細画面はメニューには出ず、一覧の管理対象名から開きます。管理画面の操作はすべて通常のPOSTで、admin-ajax.phpは1か所も使いません。

通知は「届かなかった理由」まで残ります

通知イベントは8種類(「期限前」「期限当日」「期限超過」「エスカレーション」「承認依頼」「承認完了」「差し戻し」「期限切れ処理実行」)、チャンネルは3種類(「メール」「Slack」「Chatwork」)です。期限前・期限超過は「14日前・7日前・1日前」のように日数を複数指定できます。

メールは「人」に届き、Slack・Chatworkは「部屋」に届きます。宛先の単位がそもそも違います。メールは役割で宛先が決まり(たとえばエスカレーションなら エスカレーション先 → 担当者 の2通、期限切れ処理実行なら 担当者 → 承認者 → エスカレーション先 の3通)、Slack・Chatworkは管理対象ごとに選んだ接続——つまりチャンネルやルーム——へ届きます。この2系統とは別に、全体設定に「追加のメール宛先」を登録しておくと、イベントを選んで同じメールをそのアドレスにも届けられます(役割とは無関係の固定の宛先です。下の表は役割で決まる宛先だけを並べています)。

通知イベントごとに、メールが誰に届き、Slack・Chatwork の接続へ投稿されるかどうかの対応表
通知イベント 担当者 承認者 エスカレーション先 Slack / Chatwork
期限前 メールが届く 届かない 届かない 選択した接続へ投稿される @担当者
期限当日 メールが届く 届かない 届かない 選択した接続へ投稿される @担当者
期限超過 メールが届く 届かない 届かない 選択した接続へ投稿される @担当者
エスカレーション メールが届く 届かない メールが届く 選択した接続へ投稿される @両者
承認依頼 届かない メールが届く 届かない 選択した接続へ投稿される @承認者
承認完了 メールが届く 届かない 届かない 選択した接続へ投稿される @担当者
差し戻し メールが届く 届かない 届かない 選択した接続へ投稿される @担当者
期限切れ処理実行 メールが届く メールが届く メールが届く 選択した接続へ投稿される メンションなし

メールが届く 選択した接続へ投稿される 届かない @ … メンションが付く(プロフィールにIDを登録している場合)

だからSlack・Chatworkには記事の中身を載せません。載るのは通知の種類・管理対象名・投稿タイトル・期限・期限状態・担当者・重要度・確認画面へのリンクと、差し戻し理由や確認コメントだけ。管理対象に書いた「確認メモ」・参照URL・現在のステータス・期限超過日数といった詳細項目は、個人宛のメールにだけ載ります(記事本文の抜粋やフィールドの値は、メールにも載せません)。チャンネルやルームは編集権限のない人も見られる場所だからです。

  • 定期処理が半日止まっても、復旧した瞬間に何十通も降ってきません:「14日前・7日前・1日前」を設定していて残り5日で復旧したなら、送るのは「7日前」の1通だけです。過ぎてしまった段階を遡ってまとめ送りしません。
  • 同じ通知が二度飛ばないことを、データベースの制約で保証しています:管理対象・確認回・イベント・タイミング・宛先の組み合わせを一意キーとして先に登録し、登録できたときだけ送ります。アプリケーション側のフラグではないので、定期処理が二重に走っても届く通数は変わりません。
  • 確認が一巡すれば、同じ「7日前」がまたきちんと鳴ります:確認回が変わると一意キーも変わるためです。
  • 「送らなかった」ことも記録に残ります:メール通知が全体設定で無効/通知チャンネルが未設定/宛先を解決できない/管理対象が停止中——この4つは、送らなかったこと自体を理由の文言つきで1件だけ残します。うち3つ(メール通知が全体で無効/期限当日通知のチャンネルが未設定/宛先を解決できない)は、ダッシュボードにも件数で警告が出ます。定期処理の故障なのか設定ミスなのかを、運用者が自分で切り分けられます。
  • Slackが落ちていても、メールとChatworkは届きます:チャンネルと宛先ごとに送って結果を1件ずつ記録するので、1つの障害が他を巻き込みません。
  • 失敗した通知は自動で拾い直します:毎時の定期処理が失敗分を再送し、通算3回の試行で打ち切ります。手動の再送は「通知ログ」画面のボタンからいつでもでき、打ち切ったあとの行も送り直せます。

「通知ログ」画面には通知失敗履歴20件と接続テスト履歴10件が並び、エラー内容を定型文に丸めず、返ってきたまま出します(HTTP 403 なのか名前解決の失敗なのかで、やるべきことが違うからです)。

Slack の Incoming Webhook URL と Chatwork の APIトークンは、登録した本人にも画面で全部は見えません。先頭4文字と末尾4文字だけを残して伏せ字にし(12文字以下は全体を伏せます)、入力欄には値を出さずプレースホルダとして表示します。空のまま保存すれば既存の値は消えないので、貼り直す必要もありません。管理画面を他部署に見せても秘密情報が漏れない、ということです。

  • 設定 > 通知設定 — Slack / Chatwork の接続はマスク表示。テスト送信で疎通を確かめる
    設定 > 通知設定 — Slack / Chatwork の接続はマスク表示。テスト送信で疎通を確かめる
  • 通知ログ — 届かなかった通知と、その理由。接続テストの結果もここに残る
    通知ログ — 届かなかった通知と、その理由。接続テストの結果もここに残る

テスト送信があるのは Slack と Chatwork だけです(メールにはありません)。通知ログに出るのは失敗と接続テストで、送信できた通知は管理対象ごとの履歴に残ります。担当者へのメンションは、ユーザープロフィール画面に「Slack メンバー ID」「Chatwork アカウント ID」を登録しておくと付きます(未登録でも通知は届き、表示名だけが書かれます)。メールの送信自体はWordPressのwp_mail()に任せているため、SMTPの設定項目は持ちません。通知ログ画面と設定画面を開けるのは、初期状態では管理者だけです。

価格や仕様の「その項目だけ」を、月次で確認する

ACFフィールドとカスタムフィールドは、投稿編集画面の専用メタボックス(「コンテンツ更新管理(ACF フィールド)」/「コンテンツ更新管理(カスタムフィールド)」)から1つずつ管理対象に追加します。ACF自身の入力欄には割り込まず、独自の保存ボタンも持ちません——投稿の「更新」ボタン1つで確定します

値は変えないし、表示も止めない

フィールドの期限切れ処理は「何もしない」「管理画面で警告のみ」「通知のみ」の3つだけ。実行しても記録と通知を出すだけで、フィールドの値にもフロント出力にも触りません。画面にも「フィールドの値は期限切れでも変更されません。」と書いてあります。

あとで ACF を止めても壊れない

ACFに触れるコードは1つのクラスに閉じてあり、ACFが有効でなければACFの関数を1度も呼びません。連携が止まっている間は変更検出・期限切れ処理・期限通知の3つが止まり、管理設定と履歴はそのまま残ります。管理対象の行を書き換えないので、ACFを戻せば手作業ゼロで元どおりです。

「ACFを止めたら全フィールドが変更ありになった」も起きません(停止中は変更検出そのものを止めます)。止まっていた期間の通知が復旧の瞬間にまとめて飛ぶこともありません。停止中でも進行中の確認・承認は最後まで終わらせられます。そしてACFを入れていなくても、投稿単位・管理ブロック単位・カスタムフィールド単位の管理はそのまま使えます。

変更の判定は、値をそろえてから比べます。連想配列のキー順の入れ替えは無視し、1.01.00は同じとみなし、「未設定」と「空文字」と0は型まで見て区別します。改行や前後の空白の違いだけでは「変更あり」になりません。単純な値なら、詳細画面に「確認基準値」と「現在値」が並んで出るので、前回確認したときから何がどう変わったかを、投稿を開かずに読めます。

ACF / カスタムフィールドのメタボックス — フィールド1つずつに担当者と次回確認日を貼る
ACF / カスタムフィールドのメタボックス — フィールド1つずつに担当者と次回確認日を貼る

管理できる単位はフィールド1つずつです(リピーターの行単位、Flexible Content のレイアウト単位、グループ内のサブフィールドを単独で管理することはできません。リピーター・グループ・Flexible Content は全体で1つの管理対象になります)。1つのメタボックスで入力欄が出るのは上から12行までで、それ以降は表示のみになります(ACF用とカスタムフィールド用は別のメタボックスなので、それぞれ12行まで数えます)。WordPress内部の予約されたメタキーは管理者でも登録できません。

数百本の既存記事にも、これから増える記事にも

「この投稿タイプ × このカテゴリーなら、担当者は誰・更新頻度は何か月・通知はどうする・期限が来たらどうする」を運用ルールとして登録すると、条件に一致する新しい記事は最初から担当者と次回確認日が入った状態で生まれます。次回確認日は「適用した日 + 更新頻度」で自動計算されます。管理画面から作っても、RESTでも、移行スクリプトで流し込んでも同じように効くので、編集画面だけの機能ではありません。

既存の記事にすでに入っている管理設定が書き換わるのは、管理者が一括適用を実行したときだけです。既存の記事を保存したときも運用ルールは働きますが、そのときするのは「条件に一致していて、管理対象がまだ無い」ぶんを足すことだけで、入っている設定には触りません。一括適用は実行前に「条件に一致する投稿」「うち、この種類の管理対象が既にある投稿」「管理対象がまだ無い投稿」の3つが件数で出るので、押す前に規模が分かります。

  • 既にある設定の扱いは3つから選べます:「未設定の項目だけ補完する(既定)」/「そのままにする(不足している管理対象だけ作る)」/「ルールの初期設定で上書きする」。既定は空欄だけを埋めるので、人が決めた担当者や重要度が黙って書き換わりません(どのモードでも、不足している管理対象は作られます)。
  • 数千件でもブラウザを閉じて構いません:1つのジョブで扱えるのは2000投稿まで、50投稿ずつ進みます。途中でタブを閉じても定期処理が引き継ぎます。JavaScriptを使わないので、管理画面にJSを足す他プラグインと干渉しません。
  • ルールが複数一致しても、どれが効いたかが必ず1つに決まります:優先順位(1〜999。小さいほど上位)で「管理対象の種類 + 対象キー」ごとに上位のルールが取ります。ルールを重ねても設定が混ざりません。
  • ルールを無効化・削除しても、それまでに入った管理設定は残ります:確認ダイアログにも「このルールを削除します。適用済みの管理設定は残ります。」と出ます。「試しにルールを作って消す」が安全にできます。
  • 担当者に指定した人がその記事を開けない場合は、黙って設定しません:理由を履歴に残すので、「担当なのに作業画面に入れない」行ができません。
運用ルール — 「この投稿タイプ × このカテゴリー」に初期設定を紐づける
運用ルール — 「この投稿タイプ × このカテゴリー」に初期設定を紐づける

運用ルールで指定できないものが3つあります——「指定 URL へリダイレクト」(リダイレクト先が投稿ごとに違うため、投稿の編集画面から設定します)、期限当日通知、エスカレーション日数。管理ブロックはルールから作れません(本文に置いたときにだけ生まれ、ルールは初期値を与える役割です)。カテゴリー等の条件は完全一致で、子タームは含みません。複数選んだときは、どれか1つに一致すれば対象になります。運用ルール画面を開けるのは、初期状態では管理者だけです。

誰に何を触らせるかは、WordPressのロールのまま設計できます

専用の権限は5種類(管理対象全体を管理/管理対象を編集/確認を実行/承認を実行/設定を変更)で、有効化した時点で3つのロールに仕分けされます。

ロール 見える画面 できること
管理者 ダッシュボード/ライセンス/管理対象一覧/自分の担当/運用ルール/通知ログ/設定 すべて。担当者・承認者・エスカレーション先の付け替えと、設定・運用ルール・通知ログは管理者だけ
編集者 管理対象一覧/自分の担当 管理情報の編集・確認・承認まで。設定と運用ルールは開けない
投稿者 管理対象一覧/自分の担当 管理情報の編集と確認まで(承認は不可)
寄稿者・購読者 —(メニューが1件も出ません) 投稿編集画面のメタボックスも出ず、URLを直接開いても権限エラーになります

あとから権限管理プラグインで組み替えても、アップデートで元に戻されることはありません(権限の付与は初回インストール時の一度きりです)。「投稿者から管理対象の編集を外した」といった運用を、更新のたびに設定し直す必要がありません。

そしてエスカレーション先だけは専用の権限を問いません。プラグインを触らせたくない責任者にも、「N日過ぎたら知らせる」だけを届けられます(購読者ロールは候補から外れます)。

担当者・承認者に指定できるのは、確認・承認の権限を持ち、かつその投稿を実際に開けるユーザーです。人選の時点で弾かれるので、「担当に指名されたのに画面が開けない」行が運用に混ざりません。ダッシュボードとライセンス画面はサイトの管理権限(manage_options)が必要です。3つの役割はいずれもWordPressユーザーの単一選択で、部署・チーム単位の割り当てには対応していません。

「なぜこのページが止まったのか」を、後から説明できる

管理対象の作成、担当者や次回確認日の変更、確認作業の開始、確認結果の登録、承認、差し戻し、通知の送信・失敗・再送、期限切れ処理の実行と解除——17種類の操作が追記型の台帳に並びます。定期処理や運用ルールによる自動処理も、実行者「システム」として同じ台帳に載ります。

  • 「何から何へ変わったか」まで残ります:担当者・承認者・エスカレーション先・次回確認日・ステータスは変更前後の値を保存し、画面ではユーザーIDを表示名に、コードを日本語ラベルに直して出します。未設定は「(未設定)」と明示されるので、空欄と区別がつきます。
  • 通常の操作では消せません:消える経路は2つだけ——保持期間を設定したときの自動削除と、アンインストール時の「管理設定と履歴をすべて削除」。しかも保持期間の初期値は無期限です。
  • 本文の差分はWordPress標準のリビジョン比較へそのまま繋がります:変更が検出された投稿・管理ブロックには詳細画面から「リビジョンを比較」のリンクが出ます。独自の差分ビューアを覚え直す必要がありません。
  • 履歴は確認回で束ねられます:1件ごとに「何巡目の確認か」を記録しているので、「前回の確認では何があったか」を回ごとに切り分けて読めます。管理対象の詳細画面には直近30件、投稿の編集画面には「履歴(最新 10 件)」が出ます。

止まっても壊れない

  • 定期処理が数日止まっていても、復旧した最初の1回で追いつきます:実行時刻を条件にせず、「いま処理すべきで、まだ処理済み記録のない対象」を毎回抽出し直すためです。
  • 期限切れ処理は「1つの確認回につき1回だけ」:毎時走っても、公開記事が何度も下書きに落とされることがありません。確認が一巡すれば、同じ設定でまた効き始めます。
  • 1回の処理は打ち切って、続きを次回へ回します:管理対象200件・履歴の刈り込み200件・通知の再送50件。巡回位置を保存するので、数千件を登録しても毎時のバッチがタイムアウトで落ちる形になりません。
  • wp-cron.phpは誰でも叩ける、という前提で作ってあります:多重起動の抑止は「読んでから書く」ではなくデータベースのユニーク制約で行い、取り残されたロックは300秒で掃除します。アクセスが集中する瞬間に定期処理が二重に走って通知が二重化する、が起きません。

コンテンツ更新管理そのものの定期処理は毎時のもの1本と、ACFのフィールド定義を点検する日次のもの1本の計2本です(このほかにライセンス確認の日次処理が1本動きます)。実行の間隔はWordPress標準のcronに従うため、アクセスの少ないサイトでは最大1時間ほど遅れることがあります。日時はすべてサイトのタイムゾーンで記録されます。

スプレッドシートでの棚卸しと、何が違う?

公開後のコンテンツを古くさせない方法はいくつかあります。判断材料として、運用のやり方ごとに観点を整理します。

観点 スプレッドシートでの棚卸し 「最終更新日」だけの管理 本プラグイン
気づける単位 表に書いた粒度(多くは記事単位) 記事単位(更新日は1記事に1つ) 投稿/記事の中のブロック/ACFフィールド/カスタムフィールドの4単位
通知 人が思い出したときに表を見る —(一覧を見に行く) 期限の前後にメール・Slack・Chatwork(8イベント)
確認の記録 表を更新した人の運用しだい 「更新された」ことだけが分かる 17種類の操作を追記型の履歴に。自動処理も「システム」として同じ台帳へ
期限を過ぎたときの扱い 運用ルールでの合意のみ 単位ごとに選択(下書き・非公開・リダイレクト・その範囲だけ非表示・差し替え・通知のみ・警告のみ・何もしない)
担当の引き継ぎ 表の担当者欄(更新されなくなりがち) 担当者・承認者・エスカレーション先をWordPressユーザーで保持。権限を持つ人が代行できる

※ 左の2列は一般的な運用のしかたを整理したもので、実際の運用により異なります。本プラグインの列は本製品の仕様です。

どんなサイトで役立つ?

料金表・仕様表を載せているサイト

記事全体ではなく料金表のブロックだけを3か月ごとに棚卸し。期限が来たらその範囲だけを「現在、この情報は確認中です。」に差し替えられます。

終了日のあるキャンペーン記事

終了日を次回確認日にして、期限切れ処理を「投稿を下書きへ変更」に。担当者が忘れていても、公開されっぱなしになりません。

記事を統合したメディア

旧記事は「指定 URL へリダイレクト」で新記事へ。リダイレクト中の記事はサイト内検索・フィード・アーカイブ・ブログ一覧からも外れます

価格をフィールドで持つECサイト

価格や送料のカスタムフィールドだけを月次で確認。値には触らないので、確認の仕組みを入れても表示は変わりません。

法務チェックが要る士業・専門サービス

承認者を立てて「確認結果を登録」→「承認」を回します。承認待ちの間に本文が変われば承認は自動で無効になるので、中身が変わったあとの承認が通りません。

制作会社の納品後の保守

カテゴリー別に担当者と確認頻度を運用ルールで自動付与。「どのページを誰がいつ確認するか」をクライアントに提示できる形になります。

入れたあとに困らないための備え

  • 管理対象から外しても、記録は消えません:チェックを外すのは「削除」ではなく「無効化」で、行も履歴も残り、入れ直せば戻ります。投稿をゴミ箱に入れた場合も、戻せば管理も戻ります。
  • 投稿タイプを管理対象から外しても、データは書き換わりません:一覧には「停止中」として残り、チェックを戻せば手作業ゼロで復帰します。止まるのは通知・期限切れ処理・変更検出の3つで、進行中の確認・承認は最後まで終わらせられます。
  • 管理画面を汚しません:専用CSSは自プラグインの画面と、管理対象にした投稿タイプの編集画面だけ。JSを読み込むのは一覧2画面と、管理対象にした投稿タイプのブロックエディタ(保存結果の通知用)だけです。例外は管理ブロックそのもののエディタ用ファイルで、これはWordPressにブロックとして登録する以上、どの投稿タイプのブロックエディタでも読み込まれます。他プラグインの多いサイトでも見た目と挙動を邪魔しません。
  • 設定が途中で切れて黙って消える事故を、プラグイン側が検出して止めます:PHPのmax_input_vars超過を検出したら保存を丸ごと中止して理由を出すので、共有サーバーで通知先やカタログが黙って消えることがありません。
  • 削除するときの範囲を選べます:「すべてのデータを保持」(初期値)/「プラグイン設定のみ削除」/「管理設定と履歴をすべて削除」の3択。初期値は何も消さないので、入れ替え検証で運用記録を失いません。
  • 有効なライセンスがあれば、管理画面から通常のプラグインと同じ操作で最新版へ自動アップデート。ライセンスは1サイトでアクティベートし、解除すれば別のサイトへ移し替えできます。
  • ライセンスの期限が切れても、現場の運用は止まりません:止まるのはアップデートの受け取りとバグ報告だけで、管理対象の設定・通知・確認と承認のワークフロー・履歴・期限切れ処理はそのまま動き続けます。

動作環境

  • WordPress6.6 以上
  • PHP8.1 以上
  • 確認済みWordPress 7.0
  • エディタブロックエディタ / クラシックエディタ
  • 言語日本語

通知と期限切れ処理は毎時の定期処理で動くため WP-Cron を使います(DISABLE_WP_CRON でコアの cron を止めている場合は、サーバーの cron から wp cron event run --due-now を実行してください)。ACFフィールドの管理には Advanced Custom Fields が必要です(無い場合、ACFの機能だけが表示されません)。Slack への通知には Incoming Webhook の URL、Chatwork への通知には APIトークンとルームID が必要です。マルチサイトでは検証していません。投稿・ACFフィールド・カスタムフィールドのメタボックスはブロックエディタでもクラシックエディタでも表示されますが、「コンテンツ更新管理セクション」ブロックはブロックエディタ専用です。管理画面の表示は日本語のみです。

管理画面・動作イメージ

コンテンツ更新管理セクション — 記事の中の料金表だけを1つの管理対象にする
コンテンツ更新管理セクション — 記事の中の料金表だけを1つの管理対象にする
ダッシュボード — 本日期限・期限超過・承認待ちが件数で並び、押せばその一覧へ
ダッシュボード — 本日期限・期限超過・承認待ちが件数で並び、押せばその一覧へ
投稿編集画面 — 担当者・次回確認日・更新頻度・期限が来たときの扱いを1か所で
投稿編集画面 — 担当者・次回確認日・更新頻度・期限が来たときの扱いを1か所で

よくあるご質問

導入したら、公開中の記事がいきなり非公開になったりしませんか?

なりません。有効化した時点では管理対象が1件もなく、期限切れ時の処理の初期値は投稿・管理ブロック・ACFフィールド・カスタムフィールドの4系統すべて「何もしない」です。記事の公開状態が変わるのは、その記事を管理対象にしたうえで期限切れ時の処理として「投稿を下書きへ変更」または「投稿を非公開へ変更」を明示的に選び、さらに次回確認日を過ぎたときだけです。期限当日の通知も初期状態ではオフ(送らない)で、送るように設定を変えたときにだけ届きます。

記事の本文が書き換えられたりしませんか?

投稿単位の管理では書き換えません。期限切れ時の処理で投稿ステータスを変更する処理は、WordPressに対して投稿IDと投稿ステータスだけを渡しており、本文・タイトル・抜粋には一切触れません。フロント表示に割り込むフィルター(the_content)も1つも登録していないため、プラグインを停止・削除しても原稿がそのまま残ります。1点だけ補足すると、記事の一部を管理する「コンテンツ更新管理セクション」ブロックを使う場合は、複製されたブロックを別の管理対象として区別するために、保存時にブロックへ管理IDが書き込まれます(本文の文章そのものは変わりません)。

記事全体ではなく、料金表の部分だけを管理できますか?

できます。本文にブロック「コンテンツ更新管理セクション」を置いて中に料金表を入れると、そのブロックが1つの管理対象になります。1つの記事の中に何個でも置けるので、「料金表は3か月ごと、注意事項は1年ごと」といった管理ができます。ブロックを複製したり別の記事に貼り付けたりしても、それぞれ独立した管理対象として扱われます。期限が来たときは、その範囲だけをフロントから非表示にするか、代替メッセージ(初期文言は「現在、この情報は確認中です。」で、変更できます)に差し替えるかを選べます。差し替えは表示だけの処理なので、確認が完了すれば元の内容に戻ります。ACFフィールドやカスタムフィールドも、投稿編集画面のメタボックスから1つずつ管理対象に追加できます。

担当者が休んだり異動したりしたら、確認作業が止まりませんか?

止まりません。確認作業を進められるかどうかは、いまの運用ステータスと権限(capability)で決まっており、「担当者として指名されているかどうか」は条件に入っていません。そのため、対象の投稿を編集できて「確認を実行」の権限を持つ人であれば、指名されていなくても対応開始や確認結果の登録を代行できます。指名が効くのは通知の宛先と「自分の担当」画面の絞り込みです。担当者に指定していたユーザーが削除された場合も、管理対象一覧にエラーは出ず、その行が「ユーザー未設定」と表示されて管理者に警告が出ます。

確認が終わったあと、次の確認日は自分で入れ直すのですか?

更新頻度を設定していれば自動で進みます。基準になるのは元の期限ではなく実際に確認が完了した日で、そこから「3か月ごと」などの頻度ぶん先へ進みます。月単位・年単位では、加算後にその日が存在しない場合(1月31日の1か月後など)は月末日へ丸めます。さらに、完了した管理対象は次回確認日が「期限接近」の範囲に入ると、そのあとの毎時の定期処理のタイミングで自動的に「未対応」へ戻り、新しい確認回として履歴が分かれます。更新頻度を「更新頻度なし」にしておけば、日付は自動では動きません。

承認のステップを挟めますか?

挟めます。管理対象ごとに承認者を設定すると、担当者が確認結果を登録した時点では完了にならず「承認待ち」になり、承認者が承認して初めて完了します。差し戻すときは理由の入力が必須です。承認待ちの間に対象の内容が書き換わった場合は、承認が自動的に無効になって「修正中」に戻るため、中身が変わったあとの承認がそのまま通ることはありません。完了の種類(更新あり/変更なし/対象外)は担当者の確認結果に従い、承認者は変更できません。承認者を設定しなければ、担当者が確認結果を登録した時点で完了です。

ACF を使っています。あとで ACF を止めたらサイトが壊れませんか?

壊れません。ACFに触れるコードは1つのクラスに閉じてあり、ACFが有効でなければACFの関数を1度も呼びません。ACFを停止(または設定でACF連携を無効化)している間は、ACFフィールドの管理対象について変更検出・期限切れ時の処理・期限通知の3つが止まり、画面には編集できない旨が表示されます。管理設定と履歴はそのまま残り、管理対象の行を書き換えないので、ACFを戻せば何もしなくても元どおりに動きます。「ACFを止めたら全フィールドが変更ありになった」ということも起きません。なお、ACFを入れていなくても投稿単位・ブロック単位・カスタムフィールド単位の管理はそのまま使えます。

通知が届かないときは、どこを見ればいいですか?

管理メニューの「通知ログ」画面を開いてください。届かなかった通知と失敗の理由(HTTPステータスなど)が並び、接続の「テスト送信」の結果もここに残ります。送信に失敗した通知は毎時の定期処理で自動的に再送され、通算3回の試行で打ち切られたあとは、この画面のボタンから手動で再送できます。失敗が1件も記録されていないのに届かない場合は、定期処理(WP-Cron)が動いていないか、WordPressからのメール送信そのもの(SMTPの設定など)が原因です。送信できた通知は管理対象ごとの詳細画面の履歴に残ります。

Slack や Chatwork には記事の中身も流れますか?

流れません。Slack・Chatworkへ送る本文に含まれるのは、通知の種類・管理対象名・投稿タイトル・期限・期限状態・担当者・重要度・確認画面へのリンクと、差し戻しや承認依頼のときに書かれた理由・コメントだけです。記事本文の抜粋やフィールドの値、管理対象に登録した「確認メモ」は含めません。チャンネルやルームは編集権限のない人も見られる場所なので、記事の中身は個人宛のメールにだけ載せる設計になっています。担当者へのメンションは、ユーザープロフィール画面にSlackメンバーIDやChatworkアカウントIDを登録しておくと付きます(未登録でも通知は届き、表示名だけが書かれます)。

既にある数百本の記事に、まとめて設定できますか?

できます。「運用ルール」画面で「この投稿タイプ・このカテゴリーなら、担当者は誰・更新頻度は何か月・通知はどうする」という初期設定を登録すると、条件に一致する新しい記事は最初から設定が入った状態で作られます。既存の記事へは、対象件数を確認してから一括適用を実行します。適用の仕方は「未設定の項目だけ補完する(既定)」「そのままにする(不足している管理対象だけ作る)」「ルールの初期設定で上書きする」の3つから選べるので、人が決めた担当者や重要度が黙って書き換わることはありません。1回のジョブで扱えるのは2000投稿までで、50投稿ずつ処理するためブラウザを閉じても続きます。なお、ルールを削除・無効化しても、すでに適用済みの設定は残ります。

誰がどこまで操作できますか?

5種類の専用権限(管理対象全体を管理/管理対象を編集/確認を実行/承認を実行/設定を変更)で分かれています。初期状態では、管理者に5つすべて、編集者に「管理対象を編集・確認を実行・承認を実行」の3つ、投稿者に「管理対象を編集・確認を実行」の2つが割り当てられ、寄稿者と購読者には何も付きません。設定・運用ルール・通知ログの3画面と、最上位メニューのダッシュボード・ライセンス画面、担当者・承認者・エスカレーション先の付け替えは管理者だけです。編集者・投稿者が使うのは管理対象一覧・自分の担当・管理対象の詳細画面と、投稿編集画面のメタボックスです。専用権限を1つも持たない人には管理メニューも投稿編集画面のメタボックスも表示されず、URLを直接開いても権限エラーになります。エスカレーション先だけは、通知を受け取るだけで操作権限を伴わないため、専用権限を持たない責任者も指定できます(ただし候補に出るのは購読者以外のロールのユーザーです)。

誰が・いつ・何をしたかは残りますか?

残ります。管理対象の作成、担当者や次回確認日の変更、確認作業の開始、確認結果の登録、承認、差し戻し、通知の送信・失敗・再送、期限切れ時の処理の実行と解除など17種類の操作が履歴として記録されます。担当者や次回確認日の変更は「変更前 → 変更後」の値まで、通知は宛先と役割(担当者・承認者・追加の宛先など)まで残ります。定期処理や運用ルールによる自動処理は、実行者が「システム」として同じ履歴に並びます。履歴は通常の操作では編集も削除もできず、消えるのは保持期間を設定したときの自動削除と、アンインストール時だけです(保持期間の初期値は無期限)。

定期処理が止まっていた期間があると、通知がまとめて届きますか?

届きません。期限前の通知に「14日前・7日前・1日前」を設定している状態で定期処理が数日止まり、残り5日の時点で復旧したとすると、送られるのは「7日前」の1通だけです。過ぎてしまった段階を遡ってまとめて送ることはしません。また、同じ通知が二重に届かないよう、管理対象・確認回・イベント・タイミング・宛先の組み合わせをデータベースの制約で管理しているため、定期処理が重なって実行されても届く通数は変わりません。確認が一巡して次の確認回に入れば、同じ「7日前」の通知は改めて届きます。

ライセンスの期限が切れたら、機能は止まりますか?

止まりません。期限切れで受け取れなくなるのはアップデートとバグ報告機能で、管理対象の設定・通知・確認と承認のワークフロー・履歴はそのまま動き続けます。ライセンスは1サイト単位で、解除すれば別のサイトへ移し替えできます。

プラグインを削除すると、設定や履歴は消えますか?

初期設定では消えません。「設定」画面の「アンインストール時のデータ削除」で「すべてのデータを保持(初期値)」「プラグイン設定のみ削除」「管理設定と履歴をすべて削除」の3つから選べます。「プラグイン設定のみ削除」では基本設定と通知先の登録だけが消え、管理対象・運用ルール・履歴は残ります。「管理設定と履歴をすべて削除」を選んだときにだけ、管理対象・履歴・通知ログ・運用ルール・設定をすべて削除します。プラグインを停止(無効化)しただけでは何も消えず、止まるのは定期処理だけです。

マルチサイトで使えますか?

マルチサイトでは検証していません。管理設定・管理対象・履歴はいずれもサイト単位で持つ設計で、ネットワーク全体をまたいで管理する機能や、複数サイトを横断して一覧する機能は用意していません。

動作環境を教えてください。

WordPress 6.6 以上、PHP 8.1 以上です(WordPress 7.0 まで動作確認済み)。通知と期限切れ時の処理は毎時の定期処理で動くため WP-Cron を使います。DISABLE_WP_CRON でWordPress標準のcronを止めている場合は、サーバーのcronから wp cron event run --due-now を実行してください。ACFフィールドの管理には Advanced Custom Fields が必要です(無い場合はACF関連の機能だけが表示されません)。Slackへの通知には Incoming Webhook のURL、Chatworkへの通知には APIトークンとルームID が必要です。管理画面の表示は日本語のみです。

プラグイン共通のご質問

返品・キャンセルはできますか?

本製品はダウンロード提供のデジタル商品という性質上、購入後の返品・返金は一切お受けできません。あらかじめご了承ください。なお、サブスクリプションの次回以降の更新を止めたい場合は、マイページのライセンス詳細で自動更新をオフにできます(有効期限までは引き続きご利用いただけます)。

購入にアカウント登録は必要ですか?

必要です。メールアドレスでアカウントを登録し、確認メールのリンクからメールアドレスの確認を完了のうえログインすると購入できます。ライセンスキーの確認やプラグイン本体のダウンロードも、ログイン後のマイページから行います。

支払い方法と料金体系を教えてください。

クレジットカードによるサブスクリプション(自動更新)です。請求情報や支払い方法の変更、自動更新の停止は、マイページのライセンス詳細から行えます。

1つのライセンスで複数のサイトに使えますか?

ライセンスはサイト単位で、利用できるサイト数の上限はマイページのライセンス詳細に表示されます。別のサイトへ移す場合は、旧サイトでライセンスを無効化するか、マイページのライセンス詳細で対象ドメインを解除すると枠が解放されます。

お問い合わせ対応の範囲を教えてください。

個別カスタマイズサポートは行っておりません。導入方法・基本操作に関するお問い合わせのみ対応しております。ご利用環境固有の不具合調査・コード改修は対象外です。テーマ・他プラグインとの競合調査は保証対象外です。

古い情報が残り続ける、を仕組みで止める

期限切れ時の処理は初期状態ではすべて「何もしない」です。まず1本の記事に担当者と次回確認日を貼るところから始められます。

購入にはログインが必要です

使い方ガイド

インストールからライセンス認証、設定・公開までの流れをまとめています。購入前の確認にもご利用いただけます。

使い方ガイドを見る

開発者の方へ

フック・ショートコード・カスタム投稿タイプなど、拡張に必要な情報をまとめています。

開発者向け情報を見る