ワードプレスで投稿やカスタム投稿のスラグ(URL)を変える(自動設定)するPHPコードをご紹介いたします。

投稿やカスタム投稿のスラグ(URL)を変える

※このコードはテーマのfunctions.phpに記載いただくと動作します。

add_filter( 'wp_unique_post_slug', 'change_slug', 2, 6 );
function change_slug( $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug ) {
    if ( $post_type == 'post' ) {
        $prefix = 'post_';
        if ( strripos($slug, $prefix) !== 0 ) {
            $slug = $prefix . $post_ID;
        }
    }
    return $slug;
}

add_filter( ‘wp_unique_post_slug’ はワードプレスがっスラグを設定する際の処理に割り込み独自のスラグを返すことができる関数です。change_slugで処理を行いreturnで返したスラグが投稿などに適応されます。

if ( $post_type == ‘post’ ) { で投稿を指定しています。’post’の部分をカスタム投稿タイプに変えるとカスタム投稿タイプだけにこの処理を適応することができます。

$prefix で任意のスラグの接頭子を設定し、現在のスラグにこの接頭子が付与されていない場合にのみスラグを書き換える処理を実施します。

$slug = $prefix . $post_ID; で一意の投稿のIDを接頭子にくっつけてスラグが重複しないようにします。

WordPress ワードプレスのカスタマイズやコーディングのご依頼ご相談はワードプレスドクターまでお気軽にお送りください