WordPressのパーマリンクは、デフォルトの状態では”カテゴリーベース”が含まれ、URLが長くなるので取り除いておきたいと思います。 ということで、今回はそんな”カテゴリーベース”を取り除く方法をご紹介します。 “カテゴリーベース”とはカテゴリーページ(記事一覧を表示させた時にURLのcategory/の部分のことです。 デフォルトでは
http://apiapiapiworld.net/category/wordpress/
となるところを、
http://apiapiapiworld.net/wordpress/
といったようにスッキリさせることができます。
■カテゴリーベースを取り除く方法
<1>プラグインで行う
<2>functions.phpで置換するなど
複数の方法があります。
<1>プラグインで行う
自身ではこれまで「FV Top Level Categories」を利用してきましたが、これといって問題がおこったことはなく、 4.x系でも問題なく動作しています。
<2>functions.phpで置換する ※追加する前に必ず「function.php」を取ってください。
//パーマリンクカテゴリ削除 add_filter('user_trailingslashit', 'remcat_function'); function remcat_function($link) { return str_replace("/category/", "/", $link); } add_action('init', 'remcat_flush_rules'); function remcat_flush_rules() { global $wp_rewrite; $wp_rewrite->flush_rules(); } add_filter('generate_rewrite_rules', 'remcat_rewrite'); function remcat_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; }
これだけで「category/」を削除することができるんです。 ※これらの方法には制約があって、パーマリンクの設定が/%category%/%postname%/でサブカテゴリーを持つ場合は404エラーになるのでNGです。 また、パーマリンクの構造を変えるので、運用中のサイトでは、URLが変更されてしまいますのでご注意を!