• krgn

    (@kirig)


    以下が可能であるかを含めてアドバイスを頂けると助かります。

    事例
    ・カスタム投稿 スラッグ「aaa」
    ・カスタムタクソノミー スラッグ「bbb」(上記に所属)

    したいこと
    以下のURLにしたい。
    ①固定ページ1 /aaa/
    ②カスタム投稿一覧 /aaa/bbb/
    ③カスタムタクソノミー一覧 /aaa/bbb/<term>

    function cs_post_type(){
    $arg=['hierarchical'=>false,'public'=>true,'show_ui'=>true,'publicly_queryable'=>true,'exclude_from_search'=>false,'show_in_nav_menus'=>true,'rewrite'=>['slug'=>'aaa'],'has_archive'=>true,'show_in_rest'=>true,'taxonomies'=>['bbb'],'supports'=>['title','editor']];
    register_post_type('guide',$arg);

    $arg=['label'=>'BBB','capability_type'=>'aaa','hierarchical'=>true,'show_admin_column'=>true,'public'=>true,'hierarchical'=>true,'show_ui'=>true,'query_var'=>true,'rewrite'=>['with_front'=>false,'slug'=>'aaa/bbb'],'show_in_rest'=>true];
    register_taxonomy('bbb','aaa',$arg);
    }
    add_action('init','cs_post_type');
    function rewrite_delete($rules){
    if(!empty($rules['aaa/?$'])){unset($rules['aaa/?$']);}
    return $rules;
    }
    add_filter('rewrite_rules_array','rewrite_delete');
    function re_rules(){
    add_rewrite_tag('%bbb%','([^/]+)','post_type=aaa&bbb=');
    add_permastruct('bbb','/aaa/bbb/%bbb%',['with_front'=>false]);
    }
    add_action('init','re_rules',10);

    現在①②は完了しましたが、
    ③がカスタムメニューやタグからのURL出力は「/aaa/bbb/<term>」となるのですが、表示は404となります。
    よろしくお願いいたします。

    • このトピックはkrgnが1ヶ月前に変更しました。
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 krgn

    (@kirig)

    一部自己解決しましたが、続き発生しています。引き続きよろしくお願いいたします。

    function taxlink($taxonomy,$object_type,$args){
    global $wp_rewrite;
    if($taxonomy==='bbb'){
    add_rewrite_tag('%bbb%','([^/]+)','bbb=');
    add_permastruct('bbb','sss/bbb/%bbb%',['with_front'=>false]);
    }
    return $args;
    }
    add_action('registered_taxonomy','taxlink',10,3);

    タクソノミーが表示されない件③については上記で自己解決しましたが、

    ①の子ページ(/aaa/bbb以外のスラッグ/)が表示されなくなってしまったため、生きるようにしたいです。(孫は考えなくてよい)

1件の返信を表示中 - 1 - 1件目 (全1件中)

このトピックに返信するにはログインが必要です。