CATEGORY

[WP] カスタム投稿タイプのパーマリンクURLを日本語→数字ベースに変更する方法

カスタム投稿タイプの投稿記事パーマリンクURLは標準で日本語に設定されているが、数字になるように変更する。

基本、パーマリンクURL変更はWordPressダッシュボード管理画面でできるが、カスタム投稿タイプURLは変更できないので「function.php」にコード記述することで変更可能。

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( '/archives/news/' . $post->ID );
	} else {
		return $link;
	}
}

add_filter( 'rewrite_rules_array', 'my_rewrite_rules_array' );
function my_rewrite_rules_array( $rules ) {
	$new_rules = array( 
		'archives/news/([0-9]+)/?$' => 'index.php?post_type=news&p=$matches[1]',
	);

	return $new_rules + $rules;
}

コード記述後、WordPress管理画面「パーマリンク」→「変更を保存」を更新でOK

コメントを残す

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

PICK UP