WordPressのカスタム投稿タイプで、スラッグを投稿IDにするための備忘録。
functions.phpに追記
以下をfunctions.phpに追記します。
これは全てのカスタム投稿に対して適用されるコードです。
///// カスタム投稿タイプのスラッグを投稿IDにする /////
function custom_post_link($link, $post) {
if ('post' !== $post->post_type && 'page' !== $post->post_type) {
return home_url('/' . $post->post_type . '/' . $post->ID);
} else {
return $link;
}
}
add_filter('post_type_link', 'custom_post_link', 1, 2);
function custom_post_link_rewrite($rules) {
$custom_post_types = get_post_types(array('_builtin' => false), 'objects');
$rewrite_rules = array();
foreach ($custom_post_types as $post_type) {
$rewrite_rules[$post_type->rewrite['slug'] . '/([0-9]+)/?$'] = 'index.php?post_type=' . $post_type->name . '&p=$matches[1]';
}
return $rewrite_rules + $rules;
}
add_filter('rewrite_rules_array', 'custom_post_link_rewrite');
パーマリンクを更新
「設定」の「パーマリンク」を保存し直して、パーマリンクを更新して完了です。