サポート » 使い方全般 » 複数のカスタム投稿タイプを同じ階層に作る

  • 解決済 youhe_

    (@youhe_)


    こんにちは。
    カスタム投稿タイプの設定についてご助言いただきたいです。

    以下のURLで投稿場所を分ける様、設定をしたいのですが方法がわかりません。
    ~~/hoge1/%postname%/
    ~~/hoge1/hoge2/%postname%/

    現状の設定は以下の通りです。

    functions.php

    add_action( 'init', 'create_post_type' );
    function create_post_type() {
      $args_hoge1 = array(
          'label' => 'hoge1',
          'public' => true,
          'has_archive' => false,
          'rewrite' => array(
            'slug' => 'hoge1',
            'with_front' => true
          ),
      );
      register_post_type('hoge1',$args_hoge1);
    
      $args_hoge2 = array(
        'label' => 'hoge2',
        'public' => true,
        'has_archive' => true,
        'rewrite' => array(
          'slug' => 'hoge1/hoge2',
          'with_front' => true
        ),
      );
      register_post_type('hoge2',$args_hoge2);
    }

    ~~/hoge1/%postname%/
    -> single-hoge1.phpで”hoge1″の個別ページが表示

    ~~/hoge1/hoge2/
    -> archive-hoge2.phpで”hoge2″の一覧ページが表示

    ~~/hoge1/hoge2/%postname%/
    -> 404.phpが表示

    パーマリンクの設定は
    /%category%/%postname%/

    プラグインは使用していません。

    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    hoge1 と hoge2 の register_post_type の実行順を逆にしてください。
    一般的に、URLの構造が深くなる方を先に記述したほうが、URLの競合による 404 の発生はすくなくなります。

    jim912さん

    ご回答ありがとうございます。

    functions.phpの記述をhoge1とhoge2で逆にしたら
    無事、両方の投稿が表示されるようになりました。

    助かりました。ありがとうございます!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「複数のカスタム投稿タイプを同じ階層に作る」には新たに返信することはできません。