ある日、いきなりパーマリンクの表示が日本語設定に変わった。
以前は、自分で編集をかけない限り【P-ID】の表示になっていた。
困ったよー。
こんな場合、どうしたらいいんだろう?
こうならないためにどうするかという話。
テーマを変更する時は注意がいる
パーマリンクを【%postname% 】にしていた場合、本来、パーマリンク(ページのアドレス)は、「サイト名/投稿のタイトル」になる。
それが、「サイト名/P-ID」になっていたということは、以前使っていたテーマで自動的に日本語のスラッグの場合に「サイト名/P-ID」になるようコードが付け加えられていた。
ということだと思う。
なのでそれまでは、日本語のパーマリンクではなく、「サイト名/P-ID」で自分で編集するようになっていたのだろう。
テーマを変えたとたん、本来の【日本語タイトル】になってしまった。
ということだろうと思う。
パーマリンクを【%postname% 】にする場合、「日本語スラッグ」を「post-id」にするコードを事前にfunction.phpに書き加えるておくと、トラブルに合わずに済む。
必要があれば、投稿時の編集ボタンでスラッグを書き換えれば、思い通りのページアドレスになる。
パーマリンク【%postname% 】で日本語タイトルを【post-id】に変更するコード
function.phpに下のコードを付け加える。
1.ダッシュボードの〔外観〕→〔テーマファイルエディター〕をクリニック。
2.function.phpに下のコードを付け加える。
/*
* スラッグ名が日本語だったら自動的にP-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 );
上記のコード、自分で設定したスラッグの場合は、変更しないので安心して使ってほしい。
投稿時の表示としては下の画面のようになる。
ちなみに、このコードは下のサイトからお借りしたもの。
パーマリンク【%postname% 】にはご用心
パーマリンクを【%postname% 】にするというのを推奨しているウェブサイトも多いのだが、【%postname% 】にするときは注意がいる。
【%postname% 】でパーマリンクを設定するとページのアドレスは「サイト名/タイトル」という風になる。
タイトル表示なのでわかりやすい。
という意味で、WordPressも設定画面で「検索エンジンの上位表示に効果があるかもしれない」と言っている。
が、デメリットもあって
まず、一度公開するとタイトルを変えることができない。
それだけでなく、SNSなどに表示されるアドレスが非常に長い、しかも意味不明な英語と%の羅列になってしまう。
テーマを変えた時には、投稿記事は公開前に確認するようにしないと、意図しないアドレスになってしまうので気を付けよう。
もし、「%postname% のパーマリンク設定でいきなりパーマリンクが変わった」という場合で元のパーマリンクが「サイト名/post-id/」以外の場合は、カスタム構造で元のパーマリンクのまま表示できることもある。
コメント