CATEGORY

[WordPress]カスタム投稿タイプのURLを数字ベース(ポストID)にする方法

wordpress

WordPressでカスタム投稿タイプのパーマリンクを数字ベースに変更する方法。

WordPressでは、記事のタイトル(投稿名)がパーマリンクに日本語のまま自動で入力されます。

SEO的に日本語のURLはあまりお勧めしません。

記事投稿時にパーマリンクを修正することができますが毎回は手間なので、自動で数字ベース(ポストID)で表示されるようにします。

function.phpに記述。投稿タイプ名を「aabbcc」とした場合

function my_post_type() {
  register_post_type(
 'aabbcc', //投稿タイプ名
 array(
 'label' => 'ここにラベル名',
 'public' => true,
 'has_archive' => true,
 )
 );
}

パーマリンクにポストIDを設定

add_filter( 'post_type_link', 'my_post_type_link', 1, 2 );
function my_post_type_link( $link, $post ){
	if ( 'aabbcc' === $post->post_type ) {
		return home_url( '/archives/aabbcc/' . $post->ID );
	} else {
		return $link;
	}
}

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

	return $new_rules + $rules;
}

コメントを残す

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

PICK UP