テーマの編集

カスタマイズ:パーマリンクの投稿スラッグを自動生成させる

WordPressでパーマリンク設定を「投稿名」にしている場合、日本語パーマリンクのスラッグ(URL)を自動生成するカスタマイズ方法をご紹介します。

パーマリンク設定を「投稿名」にしている場合のふるまい

パーマリンク設定は、ダッシュボードの[設定]>[パーマリンク設定]から確認できます。

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

上記のような日本語パーマリンクのURLをブラウザのアドレスバーでコピーして、それを何処かに貼り付けるとこんな風に表記されます…

https://wp-mint.com/manual/%E6%8A%95%E7%A8%BF%E5%90%8D%E3%81%AE%E3%83%91%E3%83%BC%E3%83%9E%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/
coomint

ついつい忘れがちな日本語パーマリンクのスラッグ編集。
これを自動でやってくれると便利じゃないですか?

日本語パーマリンクのスラッグを自動生成するカスタマイズ

このカスタマイズを施すことで、日本語の投稿名がパーマリンクに反映される前に、自動的にスラッグを生成することができます。
スラッグ名は post-123 のように、投稿IDを組み込んだものが付与されます。

  • 投稿の場合は「post-id」の形式でスラッグが生成されます。
  • 固定ページの場合は「page-id」の形式でスラッグが生成されます。
  • 英語タイトルの場合は、従来通りアルファベット形式でスラッグが生成されます。

functions.phpを編集

下記のコードを、テーマ内の functions.php に追記するだけでカスタマイズは完了です!

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 );

事前にファイルのバックアップを

functions.phpはテーマ全体の機能を司るファイルです。もしカスタマイズに失敗しても後から元に戻せるように、バックアップはしておいてください。

また、テーマファイルのカスタマイズには子テーマの利用をおすすめします。
※ミントの子テーマはこちらからダウンロードができます。

以上、『投稿名パーマリンクのスラッグを自動生成する方法』のご紹介でした。

Google AdSenseなどの広告

Google AdSenseなどの広告