【WordPress】日本語のパーマリンクを記事投稿時にアルファベットに自動変換する方法

WordPress
この記事は約5分で読めます。

私のサイトに以前からご来場くださっている方はご存知かと思いますが、3ヶ月ほど前まで、私のサイトのURLは日本語の見出しをそのまま付けており、URLの後半に、
「%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%AE%E8%A8%98%E4%BA%8B%E3%81%A7%E3%81%99」
のような長いリンクが貼られる状態になっていました。

これを適当な長さのアルファベットにしたいと思い、その方法を試して今に至ります。

本日は、投稿ページの日本語のパーマリンクを自動でアルファベットに変換する方法についてご紹介したいと思います。

スポンサーリンク

はじめに

パーマリンクとは?

パーマリンクとは、ブログ記事やウェブページごとに設定される「一生変わらないリンク(URL)」のことです。例えば、ブログ記事を公開すると、その記事にアクセスできる特定のURLが自動的に作られます。それがパーマリンクです。

このURLは記事が修正されたり、ページが更新されたりしても基本的に変わらないので、他の人がそのページにアクセスしやすくなります。パーマリンクを設定することで、ページへのリンクが切れたり、見つけにくくなる心配が減り、検索エンジンにも見つけやすくなります。

今回の私のように、このパーマリンクの表示方法を変更してしまうと、実体験として3ヶ月はその順位を取り戻すのに時間を要しますので、パーマリンクを変更する際には慎重に一旦じっくりと考えてから作業に取り掛かるようにしましょう。

日本語のパーマリンクで設定してしまった時のデメリット

  • URLが非常に長くなり、読みづらい
  • エンコードされた日本語URLは、メールやSNSなどで共有する際に見づらい
  • リンク切れや文字化けのリスク、読み込みエラーが発生する可能性がある
  • 一部の検索エンジンやソーシャルメディアプラットフォームでは、日本語のパーマリンクが適切にインデックスされない場合がある
  • 古いブラウザや一部のモバイルブラウザでは、日本語のパーマリンクが正しく表示されない可能性がある

といったことが挙げられます。

日本語のパーマリンクを自動でアルファベットに変換する方法について

日本語のパーマリンクを自動でアルファベットに変換するにはどうすれば良いか。

それは、Wordpressのテーマのfunction.phpにコードを追加することで解決することができます。

function.phpにコードを追加する

以下のコードをfunction.phpに追加します。

/**
 * 自動的に投稿スラッグを変換する
 */
function custom_auto_post_slug( $slug, $post_ID, $post_status, $post_type ) {
    // 投稿タイプが 'post' または 'カスタム投稿タイプ' の場合
    if ( $post_type === 'post' || $post_type === 'カスタム投稿タイプ' ) {
        // 記事のカテゴリー情報を取得
        $categories = get_the_category( $post_ID );

        // カテゴリーが存在する場合のみ処理を続ける
        if ( ! empty( $categories ) && is_array( $categories ) ) {
            // 最初のカテゴリーのスラッグを取得
            $cat_slug = $categories[0]->slug;

            // 投稿タイプをURIエンコードし、投稿IDを追加して新しいスラッグを設定
            $slug = utf8_uri_encode( $post_type ) . '-' . utf8_uri_encode( $cat_slug ) . '-' . $post_ID;
        }
    }

    return $slug; // 新しいスラッグを返す
}

// wp_unique_post_slug フィルターに関数をフック
add_filter( 'wp_unique_post_slug', 'custom_auto_post_slug', 10, 4 );

これは、記事のカテゴリーを取得して、「post-(カテゴリー名)-(投稿ID)」というユニークな名前を付けて、記事の名前として記事投稿時に保存するという処理を行うプログラムです。

※2024/09/19 追記:投稿記事以外(固定ページなど)の場合は、タイトルを変更しないような変更を加えました。
※2024/11/28 追記:一部バグを修正しました。

追加するには、Wordpressの管理画面から外観テーマファイルエディタと進み、その中にあるfunction.phpを編集します。

セキュリティー対策をしている方は、直接編集ができない場合があります。その場合は、編集を行ったファイルをFTP経由でアップロードしてください。

※function.phpをいじるのでバックアップを取ることも忘れないようにしておきましょう。

最後に

いかがでしたでしょうか?
パーマリンクを変更してしまうと、3ヶ月ほど来場者の数は激減してしまいます。これは実体験から言えることです。

しかし、いつまでも冗長な日本語のパーマリンクにしていても、それは健全なサイトとは呼ぶことができないのも事実です。

早めにパーマリンクをアルファベット化させて、短いシンプルなリンクにすることをオススメいたします。

謎爺
謎爺

以下、参考にしたサイトじゃ。

参考サイト

【WordPress】パーマリンクの日本語を自動変換させる方法 – R.BLOG
wordpress カテゴリー取得方法 カテゴリー名 スラッグ 子カテゴリーなど | 名古屋、春日井でホームページ制作なら株式会社アールデザインにお任せ
WordPressでカテゴリー情報を取得するいくつかの方法 (全て・子のみ・逆引きなど) |
get_the_category – WordPress私的マニュアル
投稿や固定ページのスラッグを自動設定する方法 – Scrapse

コメント

タイトルとURLをコピーしました