WordPressでは投稿のパーマリンク(URL)を変更した際に、過去のスラッグがデータベースの「_wp_old_slug」内に残ります。
これを「Slugs Manager」というプラグインを使って削除する方法です。
データベース内に保存される古いスラッグは、phpMyAdminからも削除できるのでこの方法も紹介しますが、プラグインを使う方が圧倒的に楽です。
古いスラッグは旧URL→新URLへの自動補完リダイレクトに使用されます。
この記事の目次
WordPressの古いスラッグ(wp_old_slug)を削除する
WordPressではパーマリンク設定により、データベース内に古いスラッグ情報が自動的に保存されることがあります。
古いスラッグ情報は、特にパーマリンクにカテゴリー名(/%category%)を使用しており、公開した投稿のカテゴリーを後から変更した際などに保存されます。
WordPressはこの古いスラッグ情報を元に、旧URLから新URLに対するリダイレクトを自動で設定します。
ある記事のカテゴリーを変更したあとで、変更前のスラッグを使ったURLである
当サイトURL/seo/about-hyperlink-color/
にアクセスしたところ
当サイトURL/seo/hyperlink-color/
という新しいURLのページがリダイレクトされて自動で開くという感じです。
分かりやすくこの動作をGIFにしてみました。
こんな感じに古いURLにアクセスしても、新しく設定したページに飛びます。
この動作に使っているのが今回削除する古いスラッグ情報です。
リダイレクトはfunctions.phpを使って停止することも出来ますが、停止するなら古いスラッグはただのゴミとなるので削除してしまいましょう!
関連記事
自動補完リダイレクトの停止方法はコチラ(↓)
Wordpressの自動補完リダイレクトを完全に停止する方法。
「Slugs Manager」で古いスラッグを削除する
古いスラッグの情報は、WordPressで使うデータベース内の「_wp_old_slug」というレコードに保存されますが、プラグインの「Slugs Manager」を使えば管理画面から簡単に削除することができます。
「Slugs Manager」の使い方はとてもシンプルですが、ここでは画像も使って詳しく解説します。
プラグインのインストール
執筆時「Slugs Manager」はWordPressの管理画面からインストールできました。
(出てこない時は以下からダウンロードして手動でインストールして下さい。)
外部リンク
【Slugs Manager】
Slugs Manager – WordPress プラグイン | WordPress.org 日本語
管理画面左メニュー > プラグイン > 新規追加
へと進んで「Slugs Manager」と検索しましょう。
出てきたら「今すぐインストール」を押して有効化します。
「Slugs Manager」の使い方
プラグインを有効化すると、管理画面のメニューに「Slugs Manager」という項目が追加されます。
管理画面メニュー > ツール > Slugs Manager
へと進みます。
すると、古いスラッグと現在のスラッグが一覧で表示されます。
あとは「すべての古いスラッグを削除する」を押せばOKです。
削除したくないスラッグがあるなら、必要に応じて削除したいスラッグだけ選んで「選択した古いスラッグを削除する」を押せばOKです。
メモ
上の画像はテスト用サイトのものなので古いスラッグが2つしかありませんが、当サイトの場合は282個もの古いスラッグが出てきました。
削除ボタンを押せば、確認画面がでますので「OK」を押しましょう。
削除が済んだら「リストを最新にします」を押してリストを更新してみましょう。
データベースに、古いスラッグは見つかりませんでした。
と出れば古いスラッグが全て削除されています。お疲れさまでした・w・
古いスラッグを削除すれば、記事の冒頭で紹介した旧スラッグが含まれるページからの自動リダイレクトも停止できます。
phpMyAdmindで古いスラッグを削除する方法
続いて、phpMyAdmindで古いスラッグを削除する方法についてです。
「Slugs Manager」プラグインを使えば古いスラッグ情報を1発で削除できますが、phpMyAdminからも過去のスラッグを確認・削除することが出来ます。
古いスラッグ情報は以下の場所に保存されています。
WordPress用データベース > wp_postmetaテーブル > _wp_old_slugレコード
これを削除すればOKです。
先ほど紹介した「Slugs Manager」もやっていることは同じです。
ではやり方を見ていきましょう・w・
postmetaテーブルの「_wp_old_slug」を削除する
まずはphpMyAdminにログインします。
WordPressに使用しているデータベース内の「wp_postmeta」テーブルを開きます。
続いて画面上部にある「検索」を押しましょう。
検索が開いたら古いスラッグ情報が格納されている「_wp_old_slug」を探します。
「meta_key」のところに「_wp_old_slug」と入力して検索しましょう。
あとは削除ボタンを押して「_wp_old_slug」レコードを削除すればOKです。
WordPressの古いスラッグは、このようにphpMyAdminを使って削除することもできますが、プラグインを使う方が断然楽で速いです。
上の画像は「Slugs Manager」プラグインを使って古いスラッグを全て削除してから、phpMyAdminで「_wp_old_slug」を検索した様子です。
返り値が空なので全ての過去スラッグが正常に削除されていることが分かります。
まとめ
以上、WordPressで古いスラッグ(旧スラッグ情報)を削除する方法でした。
この記事のポイント
- WordPressではパーマリンク(カテゴリー)変更時に古いスラッグが自動保存される
- 古いスラッグはデータベースの「_wp_old_slug」内に保存される
- 古いスラッグは旧URL→新URLへの自動補完リダイレクトに使用される
- Slugs Managerプラグインを使えば管理画面から古いスラッグの削除が可能
- phpMyAdminから「_wp_old_slug」を手動で削除してもOK
当サイトでは古いスラッグは定期的に全削除していますが特に問題はありません。
古いスラッグを282個削除した後、サイトの読み込みが変わった気もしませんが...
旧スラッグの削除は、古いパーマリンク(URL)へのアクセスを新しいパーマリンク(URL)へのリダイレクトではなく、404を表示したい時にも良いかと思います。
ではではこのへんで・w・