質問内容からすると、
問題はどう個別のスラッグを自動で割り振るようにするか
というところだと思います。
階層はカテゴリー等、タクソノミーで十分制御できるかと思いますので。
連番にしたいとのことですが、投稿スラッグを数字にしたい場合
Post_ID の使用に留めておくか、
投稿ごとのユニークな文字+数字としておくのが無難です。
それ以外は、他投稿データとスラッグが被る可能性が非常に高くなる為です。
また、参考にされているURL先の方法は、
おおむねその流れでいいとは思いますが、コアファイルの変更は推奨できません。
投稿スラッグの自動割振りは以下のように行ってください。
PHP
1// functions.php
2
3add_filter('wp_unique_post_slug', function( $slug, $post_ID, $post_status, $post_type ) {
4 // どのようなスラッグを割り当てるのかを記述
5 $slug = 'entry-' . $post_ID;
6 return $slug;
7}, 10, 4);
例えば以上を functions.php に追加すると
entry-1
と言ったように自動で割り振ってくれるようになります。
PHP
1add_filter('wp_unique_post_slug', function( $slug, $post_ID, $post_status, $post_type ) {
2
3 // 参考リンク先のようにした場合はこんな感じです
4 if( get_post_status() !== 'publish' ) {
5 // スラッグが定まっていな場合は、ID:1 のユーザーの投稿数を利用
6 $slug = count_user_posts(1) + 1;
7 }
8 else {
9 // すでに公開されている記事である場合、現在登録されているスラッグをそのまま利用
10 $slug = esc_attr( apply_filters('editable_slug', $slug) );
11 }
12 return $slug;
13}, 10, 4);
最後に、意外と忘れがちなのが
「パーマリンク設定の変更保存」をもう一度することです。
これをしないとせっかく変更したパーマリンクも有効になりません。
以下、連番で管理した場合の捕捉
スラッグは、投稿・固定ページ・メディア・カスタム投稿タイプ等、共通して同じものを付けられないため、
連番にする際は「投稿のみ数字だけにし、他はすべて英名スラッグにする」くらいで管理しないと使えません。
例えば、投稿で /category/1
固定ページで /1
とした場合、どちらかは必ず 1-2
となるはずです。
上記の参考リンク先の方法を加えて記載しましたコードは一応連番になりますが、
下書きや非公開、ごみ箱に記事があるなどすると被りが発生してしまいます。
投稿のたびに、下書きや非公開記事がない状態にしないと想定してる通りには動作しないため、
毎回主導でスラッグを入れて管理するのとそう大差ありません。