ど素人から毛を生やす。<延>

カテゴリアーカイブで/category/が入るのを消したいのだけれど…

Web > WordPress > カテゴリー 2015年10月30日(最終更新:1年前)

このページは2015.10.30に作成されています。時代の流れとそぐわない可能性があったり、僕が今以上のど素人だった頃の記事だったりするので、新しい記事を探してみるのも良いかもしれません。

どもです。

WordPressでカテゴリアーカイブを表示するとき、URLは

「ドメイン名/category/カテゴリ名」。

この /category/を取りたい。消したい。

代表的な方法は、プラグイン。
WP No Category Base 。
これを入れれば一発解決。

しかし、何らかの理由からプラグイン以外の解決法が欲しいとき、
有名なのはFunctions.phpに以下の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;
}

しかしこれ、カスタム投稿と両立できない。

ので、カスタム投稿と両立できない原因を取り除く。

add_filter('user_trailingslashit', 'remcat_function');
function remcat_function($link) {
    return str_replace("/category/", "/", $link);
}

一番上のブロックだけ残した。
すると…

見た感じ、普通に動いている。
大丈夫っぽい。

この技術が世に出たのは2013年くらい?なので、当時とWordPressの柔軟性も違うのかもしれない。
弊害があればまた書くとして、取り敢えずこれで行ってみようと思う。

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった  (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)