カスタム投稿タイプのスラッグを自動で数字ベースにする

カスタム投稿タイプを作成し、新規記事を作成しようとするとスラッグが、日本語タイトルになったりします。ユーザーもスラッグを意識しないので日本語のまま、なんて事が多いです。

Beginners!

WordPressで、自動化してほしい

ということで。

目次

functions.php に書き込み

add_filter( 'post_type_link', 'custom_post_type_link', 1, 2 );
function custom_post_type_link( $link, $post ){
	if ( '[name]' === $post->post_type ) {
		return home_url( '/archives/[name]/' . $post->ID );
	}
	return $link;
}

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

	return $new_rules + $rules;
}

[name]に投稿タイプを代入します。(4カ所)

別のパターン

先ほどのが置き換えですが、こちらは作成時に数字を付加するやり方。こちらの方がメリットがあると思われる。

function custom_auto_post_slug( $slug, $post_ID, $post_status, $post_type ) {
	if ( $post_type != "[name]" ){
		$slug = $post_ID;
	}
  
  return $slug;
}
add_filter( 'wp_unique_post_slug', 'custom_auto_post_slug', 10, 4 );

[name]に投稿タイプを代入します。(1カ所)

カスタム投稿タイプの作成

ちなみにカスタム投稿タイプの作成も面倒なのでプラグインで解決しちゃっています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コスト最小で制作をしたいという意識強め(笑)

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次