テーマご購入後はメールでの無料サポートがあります。

投稿や固定ページのURLが日本語にならないようにする方法

WordPressでは、パーマリンク設定に「投稿名」を入れることが推奨されています。

この場合、投稿画面でパーマリンク(URLスラッグ)を編集して任意のスラッグ名を入力できますが、これを忘れると日本語タイトルがそのままURLに反映されてしまします。

ここで問題になるのは、日本語が含まれるURLは(環境によって)下記のようにエンコードされた長い文字列のURLに変換されてしまうことです。

例)
https://open-cage.com/%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%83%91%e3%83%bc%e3%83%9e%e3%83%aa%e3%83%b3%e3%82%af%e3%81%aeurl%e3%82%b9%e3%83%a9%e3%83%83%e3%82%b0%e3%82%92%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90%e3%81%99%e3%82%8b/

SEO的な影響については様々な見解がありますが、これではクリックやシェアがされづらくなりそうなので、出来れば日本語のURLスラッグは避けた方が良いでしょう。

URLスラッグは記事の公開後でも変更できますが、リンク切れの問題やSEO的なデメリットも考えられるため、いったん公開した記事のURLスラッグ変更はおすすめしません。

本来は、URLスラッグを「automatic-slug」のように英単語で設定するのが望ましいのですが、万が一スラッグを設定し忘れてしまっても自動的に「URLスラッグ」を生成するカスタマイズをご紹介します。

今回のカスタマイズでは、記事IDベースのスラッグが自動生成されるようになります。

カスタマイズコードを記述

下記のコードを、子テーマのfunctions.phpに貼り付けてカスタマイズは完了です。

//URLスラッグの自動生成
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 );

このカスタマイズによって、投稿や固定ページのタイトルが日本語の場合に、例えばpost-123のような記事IDを含めたURLスラッグが自動生成されるようになります。

投稿 / 固定ページ自動生成されるURLスラッグ
投稿の場合post-id
固定ページの場合page-id
idの部分に記事ID(数字)が入ります

タイトルが英語の場合は、標準通りアルファベットのURLスラッグが自動生成されます。

まとめ

ここまで、URLスラッグを自動生成するカスタマイズについてご紹介しましたが、原則としてURLスラッグには、記事タイトルのキーワードを組み入れた英単語の設定をおすすめします。

出来るだけURLスラッグは短く端的に、ユーザーにわかり易くすることも大切です。

おすすめのWordPressテーマ

ブロックエディタ」に完全対応したSTORK19。

CHECK! OPENCAGEのアフィリエイトプログラムについて /