好きなこと以外はぐーたら。gootaraどういうタイミングで変更前の%postname%を格納してるか気になったのでデータベースを見た。Autosaveプラグインを使っていることと、自分がパーマリンクに%postname%を使用していないので、他とは動きは違うかもしれないが一応自分メモ。他の人はなんの参考にもならないと思います。データベースをわからないのに直接いじったりしてたから、すでに壊れてるかもしれないし。レコードはwp_postmetaテーブルに作られる。NULLカスタムフィールドの値レコードはmeta_keyの値”_wp_old_slug”として作られる。スラッグを変更した場合、wp_postmetaテーブルに_wp_old_slugのレコードは追加されない。・新規投稿時にスラッグを変更しなかった場合、wp_postmetaテーブルには_wp_old_slugのレコードは追加されない。・そのスラッグがwp_postmetaテーブルをpost_id+meta_key(=_wp_old_slug)+meta_value(=変更するスラッグ値)で検索して無かったらレコードを追加する。スラッグを変更した場合はN-1個のレコードが追加される。初期値の記事タイトルはwp_old_slugのレコードは作られない。・新規投稿時には編集せず編集時に変更した場合はN個のレコードが追加される。初期値の記事タイトルはwp_old_slugのレコードは作られる。・変更前のレコードを追加し、同じ値のレコードを「削除」する。テストだらだらと書いたけど要はwp_postmetaテーブルとwp_postsテーブルに無いスラッグがwp_postmetaテーブルに追加される。リダイレクト処理とはまた別かもしれないけど、データベースに格納されている変更前のスラッグのデータはこのように追加される、と思います。%postname%を決めて設定する時は、新規投稿時にスラッグを設定した方が、不要な記事タイトルのレコードがwp_postmetaに追加されないです。(上の場合では、テスト)自分の場合は、後で一括してスラッグを連番で変更したので、wp_postnameには変更前の記事タイトルが入っていた。パーマリンクは%postname%は使わず、年月日時間秒のみにしている。自分はwp_old_slugは使わないので、Adminerを使ってwp_postmetaテーブルから全部削除した。テーブルのインデックステーブル?はmeta_id+post_id+meta_keyとなってる。データを削除したら自動でインデックスは貼り直すと思うんだけど、そこはまだよくわかりません。削除、追加はwp_postmetaテーブルを参照しているテーブルが無いので、大丈夫な気がする。最悪、後でどうしても必要だったらINSERTすればいいかと思ってやりました。最後にこれはデータベースのデータを見ただけで、WordPressがどういう動きをするか、Googleがどう見てるかは全然考えてません。したら_wp_old_slugはあっても全然見てないかもしれないし。wp_postmetaテーブルの溜まったデータを削除する時には参考になるかもしれません。_wp_old_slugを見てたなら、リダイレクトがうまくいかなかったりした時は、一括でUPDATEしたりDELETEしたりできるかもですね。あとデータベースを直接いじる場合は、データベースのバックアップは忘れないように。SELECTするだけで更新、削除しないから大丈夫って思うかもしれないけど、手元が滑ったりして削除ボタンを押してしまったら大変だし、Adminerなどの管理ツールは意外にあっさり実行するから気をつけること。これを書いた私はWordPressもPHPもHTMLもデータベースもなんにもわかってないので参考にはなりませんけど、バックアップだけはやって下さい。コメントをキャンセルメールアドレスが公開されることはありません。