ずっとグチってた「WordPressで投稿スラッグ(URI/URL/パーマリンク)を手動で連番にするのが面倒」な件で解決方法を考えてみました。
パーマリンクの設定をどうするべきかという話とWordPressの仕様を踏まえて記しておきます。
アクセスがわりに多いため、参考のために残しておきます。
文章は少し修正しています。
パーマリンクの設定
Curo.jpはWordPressのパーマリンク設定をしたときに、投稿スラッグを手動で設定する「%postname%」を含めて、手動で連番にして使っていました。(今は変更しました。)
WordPressのパーマリンク設定 | |
---|---|
デフォルト | https://curo.jp/?p=123 |
日付と投稿名 | https://curo.jp/2006/09/21/sample-post/ |
月と投稿名 | https://curo.jp/2006/09/sample-post/ |
数字ベース | https://curo.jp/archives/123 |
「123」はWordPressの%post_id%のことです。「sample-post」は%postname%のことで、手動で(手打ちで)入力します。
前者は自動で数字が付加され、後者は手動で入力します。「どの設定がいいのか」という答えはなく、ブログの運用方法や好みとか性格によって変わってくると思います。
更新頻度が高いブログの場合、「毎回%post_name%を英語で指定するのは面倒で、かといって日本語のまま(タイトルと同じ)だと冗長だし、日本語URLになってしまうし、できたら楽に自動で数字が付加されるといいな」などと決めていくわけです。
よって自分で納得できれば「何でもいいんよ」とも言えそうです。
しかし、永続的にブログが続くものとして、一度決めたパーマリンク設定はなるべく変えないようにするべきで、最初の時点できっちりとパーマリンク設定をしなければいけません。
詳しくは以下でも説明しましたのでそちらも参考にどうぞ。
WordPressの%post_id%の仕様
WordPressで投稿記事を公開順に連番投稿しようとするとき、パーマリンク設定に%post_id%を含めればよさそうなのですが…。%post_id%は投稿記事だけでなく、ページ投稿・下書き投稿・投稿リビジョン(オートセーブ)・メディアライブラリ(画像のアップロード)にもpost_idが使われるため、連番にはならないのです。
たとえば、3番目に投稿した記事だけど、%post_id%は25とかになってしまうと。
本当はhttps://curo.jp/3にしたいけど、https://curo.jp/25になると。
そんなわけで、%post_name%で手動で連番数字を入れていくということになるわけです。
WordPressの投稿スラッグに自動連番設定
これがちょっと面倒で、自分で次の記事の番号を調べて打ちます。手動のため、前と同じ番号を打ってしまったり、欠番になってたりするのです。ダルいわけです。もっと簡単に連番を付与できるだろうと考えてみたところ、以下の方法を思いついた(というほどでもないが)のでメモしておきます。
- WordPressの新規投稿画面の表示オプションから「投稿スラッグ」にチェックをいれて表示させます。
- wp-admin/edit-form-advanced.php 499行目を以下のように(太字のところ)変えます。
<input name="post_name" type="text" size="13" id="post_name" value="<?php echo(get_usernumposts(2) + 1); ?>" />
ね、簡単でしょう?いや、でも簡単だと思います。
get_usernumpostsはWordPressのテンプレートタグで引数のuser_idの公開記事数を取得できます。それに+1しただけです。
複数ユーザーがいる場合でも、get_usernumpostsを複数足せばOKですね。
ちなみに、パーマリンクのスラッグ欄と投稿スラッグ欄に異なる入力がされていた場合、投稿スラッグ欄が優先されます。
コメント