カスタム投稿タイプのパーマリンクを数字ベースに

カスタム投稿タイプでの投稿記事は基本日本語に設定されているかと思いますが、
今回は日本語ではなく、パーマリンクを数字になるようにカスタマイズしていきたいと思います。

カスタム投稿タイプのURLは、ダッシュボードでの設定はできませんが、funnction.phpに以下の記述をすることで変更可能です。

add_action( 'init', 'my_post_type' );
function my_post_type() {
  register_post_type(
    'news',
    array(
      'label' => '新着情報',
      'public' => true,
      'has_archive' => true,
      'rewrite' => array('with_front' => false)//←以下の設定を追加
    )
  );
}
add_filter( 'post_type_link', 'my_post_type_link', 1, 2 );
function my_post_type_link( $link, $post ){
  if ( 'news' === $post->post_type ) {
    return home_url( '/news/' . $post->ID );
  } else {
    return $link;
  }
}
 
add_filter( 'rewrite_rules_array', 'my_rewrite_rules_array' );
function my_rewrite_rules_array( $rules ) {
  $new_rules = array( 
    'news/([0-9]+)/?$' => 'index.php?post_type=news&p=$matches[1]',
  );
 
  return $new_rules + $rules;
}

function.phpの設置が完了したら、ダッシュボードでパーマリンク設定を変更し、更新します。

admin

cl0606

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です