トラブルシューティング
Kashiwazaki SEO Lock Modified Date の使用中に発生しうる問題と対処法、動作要件、技術仕様について解説します。
よくある問題と対処法
ロックしているのに更新日が変わる
| 考えられる原因 | 対処法 |
|---|---|
| ロックが ON になっていない | メタボックスの「更新日をロックする」にチェックが入っているか確認してください。切り替えるとその場で保存され、「ロックを有効にしました」と表示されます。 |
| 投稿がまだ公開されていない | 下書き・レビュー待ち・予約中の投稿はロックが効きません。ロックは公開後に有効になります。 |
| 投稿タイプが対象外になっている | 設定画面の「ロック機能を使う投稿タイプ」にチェックが入っているか確認してください。 |
| 他のプラグインが更新日を上書きしている | 他のプラグイン(特にSEOプラグインやキャッシュプラグイン)を一時的に無効化し、ロック機能が正常に動作するか確認してください。 |
| データベース直接操作による更新 | phpMyAdmin等からの直接的なデータベース操作は、プラグインのロック機能を迂回します。WordPress管理画面から編集してください。 |
メタボックスが表示されない
| 考えられる原因 | 対処法 |
|---|---|
| プラグインが有効化されていない | 管理画面の「プラグイン」一覧で、本プラグインが有効になっていることを確認してください。 |
| 表示オプションで非表示にされている | 投稿エディタ画面右上の「表示オプション」(ブロックエディタでは「設定」の「パネル」)を開き、「Kashiwazaki SEO Lock Modified Date」が表示対象になっていることを確認してください。また、設定画面で投稿タイプが対象になっているか確認してください。 |
| ユーザー権限が不足している | 投稿の編集権限を持つユーザーでログインしていることを確認してください。 |
一括ロック・アンロックが完了しない
| 考えられる原因 | 対処法 |
|---|---|
| AJAX通信がタイムアウトしている | 投稿数が非常に多い場合、処理に時間がかかることがあります。ページを再読み込みして再度実行してください。 |
| nonce検証の失敗 | ページを再読み込みしてから再度操作してください。セッションが切れている可能性があります。 |
| サーバーのメモリ制限 | 大量の投稿がある場合、PHPのメモリ制限に達する可能性があります。php.iniの memory_limit を確認してください。 |
手動で設定した日付が反映されない
| 考えられる原因 | 対処法 |
|---|---|
| 「更新日を変更」を押していない | 日時を選んだだけでは反映されません。メタボックスの「更新日を変更」を押してください(投稿の保存は不要です)。 |
| 未来の日時・公開前の投稿 | 未来の日時は指定できません。公開前の投稿は更新日を変更できません。メッセージの内容を確認してください。 |
| 他のプラグインが保存時に更新日を上書きしている | 「更新日を書き込めませんでした」と表示された場合は、更新日を変更する他のプラグインを一時的に無効化して確認してください。 |
ヒント
問題が解決しない場合は、一度プラグインを無効化してから再有効化してみてください。設定値はデータベースに保持されるため、再有効化後も設定は維持されます。
動作要件
| 項目 | 要件 |
|---|---|
| WordPress | 6.0 以上 |
| PHP | 7.4 以上 |
| 対応ブラウザ | Chrome、Firefox、Safari、Edge(最新版) |
技術仕様
- データ保存: wp_options (kseo_lock_modified_date_*)、post_meta
- カスタムテーブル: なし
- 外部通信: なし
- Cronイベント: なし
- メール送信: なし
- セキュリティ: nonce検証、権限チェック
アーキテクチャ
Kashiwazaki SEO Lock Modified Date は以下のコンポーネントで構成されています。
フロントエンド
- フロントエンド出力は一切なし(JSON-LD、メタタグ、CSS、JavaScriptなし)
- サイトの表示速度やCore Web Vitalsに影響を与えない
バックエンド
- 設定データは
wp_optionsテーブルにkseo_lock_modified_date_*キーで管理 - 個別のロック状態は各投稿の
post_metaに保存 - AJAX でロックの切り替え・更新日の手動変更・表示の同期・一括ロック/解除・日付の修復を処理
- 投稿保存時のフィルター(
wp_insert_post_data/ 添付ファイルはwp_insert_attachment_data)で保存済みのロック状態を確認し、更新日の上書きを防止 - 予約投稿の自動公開時(
transition_post_status)に、ロック中の投稿の更新日が公開日より前に残らないよう補正
ロック処理フロー
1
投稿の保存時に、WordPress が wp_insert_post_data(添付ファイルは wp_insert_attachment_data)フィルターを実行します。
2
プラグインが、保存前の投稿が公開済みか、投稿タイプが対象か、post_meta に保存されたロック状態(未記録なら設定のデフォルト)を確認します。
3
ロックが有効な場合、post_modified と post_modified_gmt を保存前の値に戻します(GMT が未記録なら補い、公開日より前なら公開日時に揃えます)。
4
「更新日を変更」を押した場合は、post_modified / post_modified_gmt の 2 列だけを指定した日時に書き換え、ロックを ON にしてから WordPress の更新フック(save_post など)を発火します。本文やタイトルには触れません。
補足
カスタムテーブルやCronイベントは使用しません。プラグインを削除しても、wp_options の設定値と各投稿の post_meta(ロック状態)はデータベースに残ります。