(WordPress) 記事投稿時にスラッグを機械的に投稿IDと投稿日付で整形するプラグイン

経緯

記事投稿時にスラッグを機械的に投稿IDと投稿日付で整形するプラグインが欲しくなったので作りました。

条件としては以下の通り。

  • 基本的に1日1記事しか作成しない運用の WordPress サイト
  • 通常の投稿のみ適用する
  • フォーマットは <post_type>-<post_id>-yyyy-mm-dd とする
    • month, date は0詰めあり
    • 通常の投稿のみなので <post_type> は不要ではありますが、念のためつけておきます

コード

<?php

if( is_admin() ) {
    function my_modifiy_slug(
        $slug,
        $post_ID,
        $post_status,
        $post_type
    )
    {
        if ( $post_type === 'post' ) {
            $slug = utf8_uri_encode( $post_type ) . '-' . $post_ID . '-' . date('Y-m-d');
        }
        return $slug;
    }
    add_filter(
        'wp_unique_post_slug',
        'my_modifiy_slug',
        10,
        4
    );
}

これで意図した挙動になることを確認。

参考

(余談) 「スラッグ」の語源は?

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。