• WordPressの編集ロックは別の利用者による投稿の上書きを防ぐ

WordPressの編集ロックは別の利用者による投稿の上書きを防ぐ

公開日: 執筆:佐藤

WordPressで「別の利用者が編集中」と表示されたら、故障と決めず、表示された利用者が実際に編集しているかを確認します。編集ロックは、二人が同じ投稿や固定ページを開き、あとから保存した内容で先の変更を上書きするのを防ぐ仕組みです。

急いで「編集を引き継ぐ」を選ぶと、先に開いていた利用者は編集を続けられなくなります。戻る、プレビュー、引継ぎの三つを、担当者との連絡状況で使い分けます。

編集ロックと自動保存は役割が違う

WordPress 3.6の公式発表は、複数人が同じ内容を編集するサイト向けに、編集ロックと強化された自動保存を備えています。

自動保存は、編集中の変更を失いにくくするための保存です。編集ロックは、別の利用者が同じ内容を同時に変更するのを止めます。一方があれば、もう一方が不要になるわけではありません。

仕組み 守る対象 判断に使うこと
自動保存 自分が編集中の変更 保存された内容を復元できるか
リビジョン 保存後の変更履歴 どの版へ戻すか
編集ロック 同じ投稿を編集する利用者同士 誰が編集を続けるか

「保存されているから引き継いでもよい」とは限りません。先の利用者が、まだ保存されていない文や画像の配置を確認している場合があります。編集を引き継ぐ前に、本人へ連絡します。

Heartbeat APIが編集中であることをサーバーへ伝える

WordPress 3.6のHeartbeat APIは、ログイン中の画面からサーバーへ定期的に要求を送り、返された情報を処理します。標準の間隔は15秒です。編集画面では、この通信を使って投稿のロックを更新し、別の利用者による引継ぎを検知します。

編集画面を開いた事実だけで、無期限にロックし続ける仕組みではありません。WordPress 3.6の編集ロック処理は、標準で直近120秒のロックを有効として確認します。Heartbeat APIの通信が続く間はロック時刻が更新され、通信が止まれば古いロックは有効範囲から外れます。

したがって、編集画面を閉じた利用者が表示された場合は、データベースの値をすぐ削除しません。本人が別のタブや端末で同じ投稿を開いていないかを確認し、少し待ってから編集画面を開き直します。

戻る、プレビュー、編集を引き継ぐを使い分ける

WordPress 3.6の編集ロック画面には、状況に応じて「戻る」「プレビュー」「編集を引き継ぐ」に相当する操作が用意されています。

戻る

相手が編集を続けているなら、投稿一覧へ戻ります。自分が加えたい修正は、投稿本文へ直接入れず、担当者へ伝えます。

プレビュー

公開画面に近い状態を確認するだけなら、編集権を奪わずにプレビューします。文章を直す必要があるか、表示確認だけで済むかを分けられます。

編集を引き継ぐ

表示された利用者と連絡がつき、編集を終えていることを確認できた場合に選びます。引き継ぐと、先に編集していた利用者は編集を続けられず、引き継がれたことを知らせる画面が表示されます。

説明用の仮例として、公開直前の案内を担当者Aが校正し、担当者Bが画像だけを確認したい場合を考えます。Bは編集を引き継がず、プレビューか担当者Aへの連絡で済ませます。担当者Aのブラウザーが閉じられ、本人から編集完了の確認を取れた場合だけ、Bが引き継ぎます。

編集ロックが残るときは通信と利用者を確認する

表示された利用者が編集していないのにロックが続く場合は、次の順で確認します。

  1. 表示された利用者名と対象の投稿を記録する。
  2. 本人が別のタブ、別の端末、別のブラウザーで開いていないかを確認する。
  3. 開いている画面を閉じ、標準の有効時間を過ぎてから編集画面を開き直す。
  4. Heartbeat APIが使う管理画面の通信に失敗していないかを確認する。
  5. 編集ロックやHeartbeat APIを変更するテーマ、プラグイン、独自コードの有無を調べる。

管理画面の通信が失敗している場合、編集ロックだけでなく、ログイン期限の通知などHeartbeat APIを使う処理にも影響します。ロックの値だけを直接書き換えると、通信障害を残したまま表示だけを消すことになります。

独自コードは、wp_check_post_lock_windowでロックの有効時間を変えられます。標準の120秒を前提に待っても表示が変わらない場合は、この設定を変更していないかを制作担当者へ確認します。

引継ぎの判断を編集権限だけに任せない

「編集を引き継ぐ」操作が表示されることと、業務上その投稿を引き継いでよいことは別です。公開責任者、校正担当、画像担当が分かれているなら、誰が最終保存を行うかを先に決めます。

作業を制作会社へ委託していても、投稿の担当者名、公開予定、確認状態、最終保存者をサイト側で管理します。編集ロックは同時操作を防ぎますが、公開内容の承認までは行いません。

まず、ロック画面に表示された利用者へ連絡してください。編集が続いているなら戻り、確認だけならプレビューし、編集完了を確認できた場合だけ引き継ぎます。

戻る