これでもう投稿のたびにスラッグを考えなくてもいい

投稿のスラッグを、初回のみpost_IDから自動生成する方法

「設定 - パーマリンク」のカスタム構造で %postname% を使用して下さい。(/%postname%/ や /%category%/%postname%/ など)
設定が終わったら「変更を保存」をクリックするのを忘れないように。

そして functions.php に下記を追記

if (!function_exists('slug_auto_setting')) :
function slug_auto_setting($slug, $post_ID, $post_status, $post_type)
{
   // 記事IDからを記事情報を取得
   $post = get_post($post_ID);

   // 初回の投稿保存時にのみ、投稿のslug = 接頭辞 + 投稿のIDに設定
   if ($post_type == 'post' && $post->post_date_gmt == '0000-00-00 00:00:00') {
      $prefix = 'p'; // 接頭辞
      $slug = $prefix . $post_ID;
   }
   return $slug;
}
add_filter('wp_unique_post_slug', 'slug_auto_setting', 10, 4);
endif;

%postname% を使用した場合、スラッグには数字以外を含める必要があるので、必ず 9行目の $prefix = '英文字'; で好きな接頭辞を付けて下さい。
英文字以外にも -(ハイフン)や _(アンダーバー)が使えます。

これで初回のみ、投稿のスラッグが自動生成されます。(初回は手動変更不可)

また、更新時には手動でスラッグを変更する事も出来ます。その場合もスラッグを数字のみにしないよう気を付けて下さい。(a123 や 12a3, 123a などは OK)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です