[WordPress]URLの記事番号を連番にする方法

WordPressってなんだか知らないうちに記事のIDがどんどん上がっていきます。この1つ前の記事は5つ目の記事なのにIDが45でした。

IDが増えるのは、記事を保存する度に履歴を残していてそれにIDを使っているのと、画像をアップロードするのにも記事と同じIDが振られていてIDを消費していきます。

んで、WordPressはURLを記事IDにすることができるんですが、上記の設定だと飛び飛びのIDがそれぞれの記事のURLになります。それがちょっとかっこ悪い気がするわけです。

そんなわけで、URLのIDを連番にする方法を調べてみました。

参考にしたのはこちらです。

WordPress:記事IDを連番にするおまるくんの技術ノート

パーマリンクの設定をカスタム構造にする

WordPressの設定の「パーマリンク設定」で「カスタム構造」を選択します

『%postname%』を使用します。

こんな感じ。

『%postname%』を「スラング」と呼ぶようです。

functions.phpを編集

上記の設定のままだとスラングには記事タイトルから利用可能な単語をつかって文字列を生成されます。それを記事番号っぽく1番からの連番にすればURLがキレイに1番からの連番にすることができます。

手動でも変更することはできるんだけどさすがにメンドクサイ。

functions.phpを編集することで、自動で連番を振るようにできます。

ここはテーマに「Simplicity2」を使っているので、編集は「Simplicity2」の子テーマに対して行います。

「Simplicity2」の子テーマのfunctions.phpは下記にあります。

[wordpressインストールディレクトリ]>wp-content/themes/simplicity2-child

下記のコードを追加します。

このコードは参考にさせてもらった記事の完コピです。すみません。

カンタンに解説すると、下記ではすでにスラングが設定されている場合と、固定ページについてはスラングを変更しないよう処理を終了しています。

下記の処理ではすでに登録されているスラングの中から、最大値を取得して、1プラスしています。これで新規のIDが発番しています。

下記では「editable_slug」をフックして上記の関数を定義した「incliment_slug」を呼び出しています。

functions.phpを修正したら、サーバに反映します。

動作を確認する

実際の動作を確認してみます。

といっても新規に記事を投稿するページを表示した際に一度保存するとパーマリングが表示されるので、期待通りに連番が振られるかを確認しましょう。

これでこのブログもURLのIDを連番にできました。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする