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

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

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

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)