Search Regexで変換した文字列が巻き戻ったらpost_content_filteredが怪しい
2017-10-23
このサイトではなく、別のとあるサイトのssl対応を行った際のこと。
元々ある程度長く運営されていたサイトであったため、Search Regexを使ってhttpをhttpsに置換したところ、「しばらくすると一部の記事のみ、httpに戻る」という謎現象が発生。
発生原因をしっかり追及してはいませんが、一応なおせたので、その際の対応について共有します。
原因:Search Regexの置換が、編集画面には反映されていなかった
Search Regexは、post_contentや、post_excerptなどの値を直接書き換えます。しかし、編集画面では「post_content_filteredに値が入っている場合に限り、post_content_filteredを編集対象として表示する」仕様になっているようです。
post_content_filteredがそもそも何のためにあるカラムなのかよくわかりませんが、結論としては、post_content_filteredの値はSearch Regexでは置換できず、その値が編集画面に表示されていたというものでした。
それに気づかず、既存の記事を編集画面から保存してしまうと、その時表示されていたhttp~のURLが、wp_contentのhttpsを上書きしてしまい、巻き戻りが発生するというわけです。
対応:post_content_filteredを空にする
post_content_filteredは何に使われているのかよくわからない謎カラムですが(編集画面表示の際に使われていることはわかりましたが)、空にしておいて問題になるカラムではありません。
ということで、post_content_filteredを空にしてしまえば、この問題は解決します。
なお、post_content_filtered自体の意味は、公式リファレンスにも書かれておらず、世界的によくわからないカラムとして認識されているようです。
※マークダウン系のプラグインなどを利用している場合、post_content_filteredにはwp_contentと同じ値が保存される場合があります。