デフォルトでは 「ドメイン/ポストタイプスラッグ/記事スラッグ」となっているところを、「ドメイン/ポストタイプスラッグ/投稿ID」というURLに変更するためのコード。
投稿タイプ名が"tips"だとして、functions.phpに以下のように記述
/**
* 生成されるリンクURLを制御
*/
function my_post_type_link( $link, $post ){
if ( 'tips' === $post->post_type ) {
return home_url().'/tips/'.$post->ID;
} else {
return $link;
}
}
add_filter( 'post_type_link', 'my_post_type_link', 1, 2 );
/**
* リライトルールを追加してIDでのURLをカスタム投稿のURLとして利用可能にする
*/
function my_rewrite_rules_array( $rules ) {
add_rewrite_rule('tips/([0-9]+)/?$', 'index.php?post_type=tips&p=$matches[1]', 'top');
}
add_filter( 'init', 'my_rewrite_rules_array' );
記述できたら、管理画面からパーマリンク 設定を空更新するのを忘れずに。
コメント