WordPressのカテゴリーページを見ると、URLに「category」という文字が入っています。
できればURLを短くしたいので「category」が表示されないようにしたい。
パーマリンク設定で変更する
一番簡単な方法が 設定 > パーマリンク設定 で、「カテゴリーベース」に「.(ドット)」をいれ、カスタム構造に「/%category%/%postname%.html」と入れる方法です。
ここでポイントはカスタム構造に「/%category%/%postname%.html」と入れる点。
最後に「.html」を付けなくてはいけないんですね。
私はMovable TypeからデータコンバートでWordpressを使い始めたので「.html」を付けるのは大歓迎でしたが、最初からWordPressを使い、すでに記事がたくさん入ってる方にはURLが変わるのでリスクがありますね。
置き換えで変更する
長らく上の方法でやっておりましたが、ある時アドレスが「http://sample.com/./tokyo/」となっているアドレスがあることに気がつきました。
基本「Custom Permalinks」を使っているので問題なかったのですが、偶々パーマリンクを変更し忘れたのでしょうか?
そこで「.(ドット)」を使わない方法を探したところ、こちらの記事が良かったのでその通りにさせて頂きました。
【WordPress】パーマリンクからカテゴリーベースを取り除く方法
WordPressのパーマリンクには、カテゴリー以下を表示させると、カテゴリーベース(/category/)が含まれます。これを削除してすっきりしたパーマリンクにする方法を紹介します。
functions.phpに次のコードを記載します。
function catbase_function($link) { return str_replace("/category/", "/", $link); } function catbase_flush_rules() { global $wp_rewrite; $wp_rewrite->flush_rules(); } function catbase_rewrite($wp_rewrite) { $new_rules = array('(.+)/page/(.+)/?' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&paged='.$wp_rewrite->preg_index(2)); $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; } add_filter('user_trailingslashit', 'catbase_function'); add_action('init', 'catbase_flush_rules'); add_filter('generate_rewrite_rules', 'catbase_rewrite');
コメント
毎回
$wp_rewrite->flush_rules();
を呼び出すようなダメコードを紹介するのはよくないと思います。
知らない人はそのままコピペしてしまうんですよ。
https://torounit.com/blog/2015/09/02/2077/
ご助言ありがとうございます。
参考にさせていただきます。