wordpressの投稿URLスラッグにポストタイプ+記事IDを登録するように
wrodpressはパーマリンク設定画面では解決できない問題点があります。
適切なパーマリンクを生成するためには、パーマリンク設定画面での設定だけでは不十分です。なぜなら、URLの一部が日本語で表示されることで、不具合が生じる場合があるからです。
なので、いつも投稿のパーマリンク設定は[/%post_id%/]にしています。
でもこちらに指定するとslugの編集は不可になってしましいます。
今回の記事はfunctions.phpをカスタマイズしてURLスラッグにポストタイプ+記事IDを登録するよう紹介したいです。
管理画面でパーマリンク設定は「/%postname%/」にします。
functions.php
テーマ内のfunctions.phpに下記の関数を作成します。
<?php
function my_create_urlslug( $override_slug, $slug, $post_ID, $post_status, $post_type ){
//スラッグに英数以外が入っていたら処理
if( preg_match( '/(%[0-9a-f]{2})+/', $slug ) ){
$override_slug = utf8_uri_encode( $post_type ). '-'. $post_ID;
}
return $override_slug;
}
add_filter( 'pre_wp_unique_post_slug', 'my_create_urlslug', 10, 5 );?>
そしたら、投稿のslugはカテゴリー名+IDに自動生成します。sulgは編集可になります。
参考サイト: http://yumenekostd.starfree.jp/noplugin-translate-urlslug/