URLから不要な/categoryを簡単に消す方法

まずは、この記事のURLを例に何をするかご説明したいと思います。
この記事もデフォルトでは、「ドメイン」とカテゴリである「web」の間に「category/」がついてくるのでこれを無くす方法になります。

https://moooii.com/category/web/wp/customize/674/

https://moooii.com/web/wp/customize/674/

削除する方法は、「.htaccessファイル」や「プラグイン」を使う方法もありますが誰でも簡単に管理しやすいfunction.phpに以下のコードを追加しよう。

追加する前に必ず「function.php」のbackupをとってから作業に入ってくださいね。

// パーマリンクカテゴリ削除(サブカテゴリーは404エラーになります)
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/」を削除することができるんです。

SNSで記事のシェアなどしてもらう時も文字数制限があるのでURLは、短いに越したことはないですよね。

プラグインを使う場合は「No Category Base (WPML)」がおすすめです。

こちらはサブカテゴリのエラーなども発生しないので簡単確実に「category/」の削除をしたい場合は、こちらの方法がおすすめです。