【カンタン】ワードプレスのURLに表示されるカテゴリー(/category)を省略する方法(functions.php)

ワードプレスではカテゴリーの一覧を見るとURLに「/category」という文字が含まれます。それ自体はカテゴリーを表示しているというのが判りやすくて良いのですが、URLが長くなると少し困りますよね。

もし「ブログ(スラッグ:blog)」というカテゴリーを追加した場合は以下のURLになります。

http://example.com/category/blog

仮にどこかのサイトに掲載したりするとURLが長いと見た目がよくないですよね。やはり理想はシンプルな構造です。つまり「/category」を取っ払って「.com」の直後に「/blog」が表示されるのがベスト。

表示URLから「/category」をなくした状態が以下のURL。スッキリしていますね。

http://example.com/blog

上記を実現するためには2つの手順が必要です。1つはfunctions.phpへのURLリライト処理の追加。そしてもう1つが意外と忘れがちな管理画面内からパーマリンクの変更と更新ボタンを押すという作業です。

念のためカンタンに手順を明記しておきましょう。まず以下が元々の「/category」が含まれている状態。カテゴリー「weblog」が親で、その下に「子カテゴリー」がぶらさがっている構造です。「/weblog」にアクセスすると全記事が表示されるので運用はしやすいですが「/category」がつくとURL表記が長い。

最短1日でワードプレスを引っ越し

functions.phpへ追加するスクリプトは以下。判りやすく少し隙間を空けて記述しましたが詰めてもOK。

//URLの文字列を置換する
function category_name_url_hidden_function($link) {
	return str_replace("/category/", "/", $link);
}

add_filter('user_trailingslashit', 'category_name_url_hidden_function');


//リライトルールを再生成してデータベースに保存
function category_name_url_hidden_rules() {
	global $wp_rewrite;
	$wp_rewrite->flush_rules();
}

add_action('init', 'category_name_url_hidden_rules');


//新しいリライトルールを設定する
function category_name_url_hidden_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('generate_rewrite_rules', 'category_name_url_hidden_rewrite');

次に管理画面にログインして「設定 > パーマリンク設定」へ移動。

特に設定を触っていない人は下記が設定されています。ブログ記事のURLに年月日が入る設定ですね。

ラジオボタンで「カスタム構造」を選んで下記に変更します。URLが追記できるバーの下にあるボタンを押したらタグを挿入できるので、半角のスラッシュ「/」で挟みながら入れましょう。

コピペ用は下記にご用意いたしました。

/%category%/%post_id%/

入れ終わったら最後に最下部にある「保存」ボタンをクリック。

適用した状態が下記です。無事「/category」が省略されましたね。

パーマリンク設定に%category%が含まれた状態で保存をしないと動作しませんのでご注意ください。

最新式のプラグインを事前公開!

WordPressは公式サイトに登録されているプラグインだけでは機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグイン無料でダウンロードいただけます。ワードプレスサイトのマーケティング力をさらに高めるチャンスです。ぜひ無料でDLしてお試しくださいませ。
改良されたプラグインを確認する