スラッグ名が日本語の記事を自動的にidに変更するよう設定する方法

現在ドットワンで制作させていただいているウェブサイトはすべてwordpressを利用しています。

ウェブサイトはなんといっても更新が大事で、SEOや見栄えの観点からもクライアントさんに納品後スラッグを英語に変更して公開するようお願いしてるのですが、忘れられてしまうことがほとんどです。

途中からURL変更するのもよくないので、初期設定で英語にしてしまうことにしました。

スラッグ名が日本語だったら、自動的に「投稿タイプ+id」に変更

もちろんスラッグを自身で設定した場合は適用されません。また、管理画面>設定>パーマリンク設定をpostnameやpost_id等に設定している場合に限ります。

自動的に「投稿タイプ+id」に変更するコード

下記コードをfunction.phpに追加してみましょう。

/*
* スラッグ名が日本語だったら自動的に投稿タイプ+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  );

動作

初期のまま

スラッグ名が日本語の記事を自動的にidに変更するよう設定する方法 初期のまま

上記コードを追加

スラッグ名が日本語の記事を自動的にidに変更するよう設定する方法 コードを追加

自分でslugを入力した場合

スラッグ名が日本語の記事を自動的にidに変更するよう設定する方法 自分でslugを修正

いかがでしょう。簡単ですね。

SNSなどに自動投稿している場合は、日本語スラッグですと呪文のようになってしまうので、ミス防止のためにも設定しておいたほうが良いと思います。

参考サイト

WordPress の投稿スラッグを自動的に生成する | Simple Colors

この記事を書いた人

木村 太一

ドットワンの代表です。1979年生まれ。3女の父。ゴルフと筋トレが趣味。立川にあるキヤノン代理店に就職後、1万件以上飛び込み営業したのち独立。たくさんの企業を見てきた経験と自分自身も零細企業の経営者ということを活かし、相手の立場に立ったITコンサルを行っております。