function.phpでパーマリンクから/category/を取り除く。

function.phpでパーマリンクから/category/を取り除く。
function.phpでパーマリンクから/category/を取り除く。

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

WordPressカテゴリの最新記事