Search Regex やSQLでTCDテーマでのWordPressサイトを置換すると設定が消える

guidまで置換していたのが原因っぽい。代わりに Better Search Replace を使うと上手く行った。

上記の作業を行いデータベース内で直接 URL を変更している際、wp_posts テーブルの “guid” カラム内に URL が含まれているのに気付くかもしれません。このフィールドに含まれる内容を変更しないことは非常に重要です。

“GUID” という言葉は “Globally Unique Identifier (グローバル固有識別子)” の略です。これは、「すべての空間と時間において固有であり、 絶対に変更されない」という投稿の識別子を保持するためのフィールドです。GUID フィールドは主に、WordPress のフィードを作成する際に使われます。

https://ja.wordpress.org/support/article/changing-the-site-url/#guid-%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e3%81%ae%e9%87%8d%e8%a6%81%e4%ba%8b%e9%a0%85

MYSQLでやるとこう。

## UPDATE `wp_posts` SET guid=REPLACE (guid,'旧ドメイン','新ドメイン'); ←これがダメだった
UPDATE `wp_posts` SET post_content=REPLACE (post_content,'旧ドメイン','新ドメイン');
UPDATE `wp_options` SET option_value=REPLACE (option_value,'旧ドメイン','新ドメイン');
UPDATE `wp_postmeta` SET meta_value=REPLACE (meta_value,'旧ドメイン','新ドメイン');
UPDATE `wp_posts` SET post_title=REPLACE (post_title,'旧ドメイン','新ドメイン');

Search Regex はguidをデフォルトでは検索・置換対象にしないみたいなんだけど、なぜかな。