ワードプレスのURLからcategory部分を省略する方法まとめ。

[最終更新日]2015年7月27日

wordpressカスタマイズ

パーマリンクの設定で、/%category%/%post_id%.htmlといった感じに指定してある場合、
URLには、categoryが表示されます。(当たり前w)

それを、もうちょっとURLをすっきりさせようという話。

hogehoge.com/category/hoge/12345.html

hogehoge.com/hoge/12345.html

プラグインを使う場合、Top Level Categoriesが人気ですね。
しかしながら、プラグインをできるだけ避けて表示速度をUPさせたいなど
いろいろとこだわる方もいらっしゃるのでは?
WP構築するたびに、プラグインをインストールしていたのでは、めんどうということもあります。
ただでさえプラグインが多いのに極力使うのを抑えていきたいところですね。
そういった場合には、function.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;
}

さあ、これで解決!

  • Twitterをフォロー
  • Facebookページを見る
  • RSSを登録