よくある悩みとして、SEOを考慮して、「パーマリンク」の設定で、 投稿名(/%postname%/)に設定したが、日本語の記事タイトルのまま公開すると、スラッグが日本語になります。
日本語のスラッグの何が問題かと言いますと、日本語スラッグの投稿のURLをコピペすると、
/%e3%82%bf%e3%82%a4%e3%83%88%e3%83%ab/
このような感じになってしまい、SNSでシェアする際にリンクが張れないことが起こる可能性があります。
という悩みを解決するために、投稿のスラッグを、数字で自動生成する方法を解説しますね!
投稿のスラッグを、数字で自動生成する方法
結論のコードは下記になります。「functions.php」に記述してください。
function slug_auto_setting($slug, $post_ID, $post_status, $post_type) {
if ($post_type == 'post') {
$slug = $post_ID;
}
return $slug;
}
add_filter('wp_unique_post_slug', 'slug_auto_setting', 10, 4);
検証しますね!
投稿のタイトルを日本語にして公開しても、投稿のスラッグは自動生成された数字になります。
(新規投稿の場合、「下書き保存」をしてもスラッグは日本語タイトルですが、「公開」を押すと自動で数字に変わります。)
投稿のスラッグを、初回のみ数字で自動生成する方法
投稿のスラッグを後から変更することは、SEOの関係上あまりないかと思いますが、初回は、自動生成された数字のスラッグにしたいが、後からユニークな文字列(例: dynamically-change-h1)にしたい場合は、下記のコードを使用してください。
function slug_auto_setting($slug, $post_ID, $post_status, $post_type) {
$post = get_post($post_ID);
if ($post_type == 'post' && $post->post_date_gmt == '0000-00-00 00:00:00') {
$slug = $post_ID;
}
return $slug;
}
add_filter('wp_unique_post_slug', 'slug_auto_setting', 10, 4);
検証しますね!
初回の公開時に、自動生成された数字のスラッグを、後からユニークな文字列に変更
今回は以上です!