[WordPress]URLをカスタム投稿タイプ名+タームスラッグ+post_idにする

カスタム投稿のURLの基本設定

このサイトのパーマリンクの構成は

https://~~/waza/wordpress/42

カスタム投稿タイプ名+タームスラッグ+post_id
となっています。

/wazaの時にはカテゴリー一覧を表示

/waza/wordpress…の時には記事一覧を表示

/waza/wordpress/42…の時には記事詳細を表示

CPT UIの設定

Custom Post Type Permalinksの設定

上記までの対応で
/waza
/waza/wordpress
で思った通りの表示になった。

しかし、詳細ページの/waza/wordpress/40の時に404エラーが出てしまうので、function.phpにリライトルールを追加して対応した。

function.phpでリライトルールを設定する

function myUrlRewrite($rules){
    $myRule = array();
    $myRule['waza/([^/]+)/([^/]+)?$'] = 'index.php?post_type=waza&p=$matches[2]';
  
    return array_merge( $myRule, $rules );
}
add_action('rewrite_rules_array', 'myUrlRewrite' );

参考サイト

https://yuki.world/cpt_permalink_build/
https://blog.skylarking.me/2017/12/24/wordpress-custom-post-type-and-taxonomies

タイトルとURLをコピーしました