カスタム投稿タイプを作成し、新規記事を作成しようとするとスラッグが、日本語タイトルになったりします。ユーザーもスラッグを意識しないので日本語のまま、なんて事が多いです。
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;
}
別のパターン
先ほどのが置き換えですが、こちらは作成時に数字を付加するやり方。こちらの方がメリットがあると思われる。
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 );
カスタム投稿タイプの作成
ちなみにカスタム投稿タイプの作成も面倒なのでプラグインで解決しちゃっています。
Custom Post Type UI
タクソノミーや投稿タイプなどのカスタムコンテンツタイプを作成するための管理 UI
コメント