経緯
記事投稿時にスラッグを機械的に投稿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
);
}
これで意図した挙動になることを確認。