サイトアイコン ドットワン合同会社

スラッグ名が日本語の記事を自動的に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  );

動作

初期のまま

上記コードを追加

自分でslugを入力した場合

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

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

参考サイト

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

モバイルバージョンを終了