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/
ついつい忘れがちな日本語パーマリンクのスラッグ編集。
これを自動でやってくれると便利じゃないですか?
日本語パーマリンクのスラッグを自動生成するカスタマイズ
このカスタマイズを施すことで、日本語の投稿名がパーマリンクに反映される前に、自動的にスラッグを生成することができます。
スラッグ名は 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はテーマ全体の機能を司るファイルです。もしカスタマイズに失敗しても後から元に戻せるように、バックアップはしておいてください。
また、テーマファイルのカスタマイズには子テーマの利用をおすすめします。
※ミントの子テーマはこちらからダウンロードができます。
以上、『投稿名パーマリンクのスラッグを自動生成する方法』のご紹介でした。