[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’の値を修正。

WordPressのXserverへの移行

お名前.comのレンタルサーバーから、Xserverのレンタルサーバーへ移行した。WordPressの移行については、「WordPress簡単移行」で移行した。

https://www.xserver.ne.jp/manual/man_install_transfer_wp.php

便利で楽にできていいのだが、ただ、一つのサイトだけデータ移行のところで失敗して移行できなかった。

【原因】

プラグインの「Google Map WP」がDBでバイナリデータを使っていて、それが通常方法でdumpした場合には復元できないためエラーとなるよう。

【対応方法】

「WordPress簡単移行」を使いたい場合は、一旦、「Google Map WP」プラグインを削除してから移行して、その後、Xser ver側で再度、プラグインを入れるしかないか。

そうじゃなければ、自分で移行する。

https://www.xserver.ne.jp/manual/man_install_transfer_wordpress.php

その場合、DBバックアップ時には「–hex-blob」オプションを指定すること。

https://dev.mysql.com/doc/refman/5.6/ja/mysqldump.html#option_mysqldump_hex-blob