[WordPress]BogoとYoast Duplicate Postの問題

【現象】

多言語対応としてBogoを使っているが、翻訳済みの投稿をコピーして別の投稿を作ったところ、元の投稿の翻訳リンクが新しいページとなってしまった。

画面上からは解決する方法は無いようなので、投稿を削除して作り直すか、DBを手で直すしかない。投稿を作り直すのも面倒なので、DBパッチで直したので、参考まで。

【解決方法の調査】

Bogoのソースを見て、どのようにDBを使っているかを調べる。

https://github.com/takayukister/bogo/blob/71897a24c0897bcf0ecdb4d7d412573c94c2b3f8/includes/query.php#L236

メタテーブル(※)の、キー項目’_original_post’と’_locale’を使っていることが分かる。

※??_postmetaテーブル(??:WordPressインストール時の設定による。wpとか)

【対応内容】

DBのメタテーブルのレコード状態を見ておかしいものを直せばいい。自分の状態では、以下を対応した。

  1. コピー先の投稿のメタテーブルに、コピー元を指す余分な‘_original_post’があったので、このレコードを削除。
  2. コピー元の’_original_post’の値を修正。