こんにちは!さとけん( @web_satoken )です。
WordPressの記事URLが、自動で日本語にならないようにしたい!
といった方に向けての記事を書きました!
WordPressでは、パーマリンク設定を”投稿名”の設定にしている方が多いと思います。
その際に、次のように記事を書いて保存すると、URLスラッグが”日本語”で自動生成されますよね。
このままの状態で投稿URLをコピーして貼り付けると、長い文字列のURLになってしまいます。
https://satokenblog.com/%E3%81%93%E3%81%93%E3%81%AB%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%81%8C%E5%85%A5%E3%
このままのリンクでも表示はされますが、
・SEO対策としてどうなのか
・ユーザーが怪しく感じてしまい、クリックされにくくなる
といった問題点が出てきます。
なので、本来はこの記事URL「/wordpress-post-slug/」のように、”英語”に書き換える必要があるのですが、運営するクライアント様によっては、URLまで気にしていない方がほとんどですよね。
そこで今回は、投稿URLが”日本語”のままの状態で保存した際に、自動で”英語”のURLスラッグを生成する方法を紹介します!
それでは、さっそくみていきましょう!
WordPressの記事URLが日本語にならないようにする方法
WordPressの記事URLが日本語にならないようにするには、functions.phpに以下を記述するだけ。
// =====================================
// 投稿/固定ページのURLが日本語の場合、記事IDで自動生成する
// =====================================
function auto_post_slug($slug, $post_ID, $post_status, $post_type)
{
if (preg_match('/(%[0-9a-f]{2})+/', $slug)) {
$slug = utf8_uri_encode($post_type) . '-' . $post_ID;
}
return $slug;
}
add_filter('wp_unique_post_slug', 'auto_post_slug', 10, 4);
この記述によって、日本語のままの状態で保存すると、URLスラッグが自動で「post-記事ID」に生成されます。
通常投稿のほかに、固定ページやカスタム投稿の場合でも以下の形で生成してくれます。
- 投稿の場合:post - ◯◯
- 固定ページの場合:page - ◯◯
- カスタム投稿の場合:(カスタム投稿タイプのスラッグ) - ◯◯
URLスラッグを自身で英語に書き換えた場合は、そのまま適用されるので安心してください!
すでに公開されている記事URLが日本語になっている場合、その記事を更新するとURLが自動で変更されてしまうため、注意が必要です。(リンク切れ等の問題)
まとめ
今回は、WordPressの投稿URLが日本語にならないようにする方法を紹介しました。
記事がシェアされる可能性も配慮して、構築段階からfunctions.phpに記述しておくと良いですよ。