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が変更されてしまいますのでご注意を!