WEBTODESIGN

【コピペOK】カスタム投稿タイプのスラッグを投稿IDにする【WordPress】

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');

パーマリンクを更新

「設定」の「パーマリンク」を保存し直して、パーマリンクを更新して完了です。