ページスラグ(url)を自動で割当
コラムやお知らせなど投稿を利用して作成した際、どうしてもページURLがタイトルを取得する設定にしているため、日本語になってしまい、いちいち英語に直すのってすごい手間だし、クライアント様が更新する際忘れてしまうことも多々あり、何とか自動で【お知らせ】なら news●●(●●は連番)にならないかと調べてみました。
functions.phpに追記することで対応できそうです。
/* 投稿記事のスラッグをID番号で採番 */
function custom_auto_post_slug( $slug, $post_ID, $post_status, $post_type ) {
if ( $post_type == 'post' ) {
$slug = $post_ID;
}
return $slug;
}
add_filter( 'wp_unique_post_slug', 'custom_auto_post_slug', 10, 4 );
ただ、記事のID番号を自動的にスラッグにするのであれば、上記でOKなのですが
今回は投稿をコラムとして利用しているので、URLを『column●●』にしようと思います。
上記の3行目 $slug = $post_ID; を
下記の3行目ように $slug = utf8_uri_encode( 'column' ) . $post_ID; と書き換えます。
/* 投稿記事のスラッグを「columnID」で採番 */
function custom_auto_post_slug( $slug, $post_ID, $post_status, $post_type ) {
if ( $post_type == 'post' ) {
$slug = utf8_uri_encode( 'column' ) . $post_ID;
}
return $slug;
}
add_filter( 'wp_unique_post_slug', 'custom_auto_post_slug', 10, 4 );
日本語だったurlがcolumn154に変更なりました。(下画像)
※functions.phpに上記を追記する前に投稿した記事は【更新】しない限り以前のURLのままになります。
今回は色々クライアント様からの要望がありそうな項目をテスト検証しながらのサイト制作の為
後からの設定になっていますが、後から変更となると、該当ページに対する検索エンジンの評価がリセットされたり、外部リンクからの以前のURLにアクセスした時に404エラーが起きたり、SEOに悪影響を及ぼす可能性があので、設定するのであれば一番初めに設定しましょう。
さて、とりあえず日本語スラグは回避できたものの、番号が154。これは管理上の投稿IDを取得しているので、他の投稿記事を含めた番号。できれば同ジャンルでの連番にしたい。
もう少し、調査を進めます。
方法が見つかったら、カスタム投稿で作成した『販売中写真』『実績紹介(制作中)』も自動連番に対応させていきたいと思います。