サポート » 使い方全般 » カスタム投稿タイプとカスタムタクソノミー を追加しあと設定されるスラッグを同じにする方法について質問です。

  • [ 前提 ]
    プラグインを利用せずカスタム投稿タイプとカスタムタクソノミーを追加しました。
    下記はfunctions.phpに追加したコードです。

    [ コード ]

    function add_custom_post() {
        $supports = [
            'title',
            'editor',
            'thumbnail',
            'excerpt',
            'author'
        ];
        register_post_type(
            'events',
            array(
                'label'=> 'イベント',
                'labels' => array(
                    'all_items' => 'イベント一覧'
                ),
                'public' => true,
                'query_var' => true,
                'hierarchical' => true,
                'has_archive' => true,
                'menu_position' => 5,
                'show_ui' => true,
                'show_in_rest' => true,
                'rewrite' => true,
                'capability_type' => 'post',
                'supports' => $supports
            )
        );
        register_taxonomy(
            'event_cat',
            'events',
            array(
                'hierarchical' => true,
                'label' => 'カテゴリー',
                'singular_label' => 'カテゴリー',
                'public' => true,
                'show_ui' => true,
                'show_in_rest' => true,
                'query_var' => true
            )
        );
        register_taxonomy(
            'event_tag',
            'events',
            array(
                'hierarchical' => false,
                'label' => 'タグ',
                'singular_label' => 'タグ',
                'public' => true,
                'show_ui' => true,
                'show_in_rest' => true,
                'query_var' => true
            )
        );
    }

    [ 解決したいこと ]
    カスタムタクソノミーの第一引数で指定されているスラッグ”event_cat”とカスタム投稿タイプの第一引数に指定しているスラッグ”events”を同じにしたいです。

    ご教授の程、よろしくお願いします。

    • このトピックはリキャーナが3ヶ月、 3週前に変更しました。
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    基本的なところの確認ですが、「スラッグを同じにしたい」理由は何でしょうか、「URLをカスタマイズしたい」のでしょうか?
    スラッグの重複は意図しない挙動、404エラーなどの原因になりますので避けましょう。

    URLに使われる文字列を投稿タイプやタクソノミー名とは別にしたい場合は
    'rewrite' => true
    じゃなくて
    'rewrite' => array( 'slug' => 'hoge', ),
    とかにするとカスタマイズできます。(投稿タイプ、タクソノミーとも)

    ただここで投稿タイプとタクソノミーのリライトスラッグを同じにした場合に、おそらく意図するページ内容が正しく表示されないのではないかと思います。(恐ろしくて自分では実践したことがないため推測ですが)

    もし実現したいことがURLのカスタマイズである場合は、その旨を記載して具体的にどういう形を実現したいのかを明示したほうが良いと思います。(ただしパーマリンクカスタマイズは茨の道なのでそれなりの覚悟で臨んでください…汗)

    URLが関係ない場合は、スラッグを同じにしたい理由を教えてください。理由次第では代替案を考えることができますので。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • このトピックに返信するにはログインが必要です。