マイクロ office ★excel2016 価格 http://www.msofisu.com

microsoft オフィス ★office365 価格 個人

WordPress カテゴリーページでパーマリンクから”category”を取り除く

WordPress プラグインなしで「category」を除外する方法 category base 削る

WordPressパーマリンク設定のカテゴリーベースとは?

WordPressの管理画面→設定→パーマリンク設定で「カスタム構造」を利用している人は多いと思いますが、その下のオプション「カテゴリーベース」や「タグベース」は見て見ぬフリをしているはず(私がそうです)。WPのカテゴリーページでパーマリンクから”category”を取り除く4つの方法

1.カテゴリーベースとは?

カテゴリーベースとは、カテゴリーのURL(カテゴリー一覧ページのURL)の指定に利用するものです(記事のURLには全く無関係)。

通常、「wordpress」というカテゴリーを作成した場合、そのカテゴリーのURLは

http://www.eccube.org/category/wordpress/

となります。そう、カテゴリー名(カテゴリーのスラッグ名)の前に「category」という単語が自動的に入ります。そこでカテゴリーベースの項目に「hoge」を設定すると、「wordpress」カテゴリーのURLは

http://www.eccube.org/hoge/wordpress/

となります。

2.カテゴリー名の前につく「category」を除外する方法

wordpress」というカテゴリーを作成した場合、そのカテゴリーURLは

http://www.eccube.org/wordpress/

としたいところです(考え方としては、サイト構造として「wordpress」というディレクトリを作成したようにしたい)。

その方法ですが、カテゴリーベースに「.」(ドット)をつけるだけです。それだけで、カテゴリーURLに自動でつく「category」という単語をURLから除外できます。

3.蛇足

カテゴリーベースに「.」を設定し、「domein」というカテゴリを作成した場合、そのURLは以下のようになります。

http://www.eccube.org/domein

その「domein」のカテゴリにはいくつかの記事が所属するわけですが、その記事のURLは特別な設定をしていない場合、次のようにデフォルトのURLになります。

http://www.eccube.org/?p=123

しかし、せっかく「domein」というカテゴリに所属しているならば、以下のようにしたいところです。

http://www.eccube.org/domein/123.html

その方法は、以下のようにするだけです。

カテゴリーベース

つまり、カスタム構造を「/%category%/%post_id%.html」、カテゴリーベースを「.」にするだけです。

なお、カスタム構造の値を「/%category%/%post_id%」にすると、サブカテゴリーページが404エラーとなり、表示されなくなるため、必ず「.html」を付けてください。

或は、

/%category%/%postname%/

 

プラグインを利用する

プラグインで削除する方法が一般的なよう。

以下の3つあたりが多い。

WordPress › WP No Category Base « WordPress Plugins

WordPress › WP No Category Base – WPML compatible « WordPress Plugins

WordPress › FV Top Level Categories « WordPress Plugins

ただし日本語の扱いや、プラグインをやめたらページが表示されないといった不具合報告を見かけました。

function.php で置換する

ディフォルトの「category」を 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;

}

WordPress の内部についても分かってないといけないですね。

Apachemod_rewrite で書き換える

.htaccess あたりに追記する。

既存の.htaccessをバックアップしてから、以下の1行を追記します。

RewriteRule ^category/(.+)$ http://yourwordpresssite.com/$1 [R=301,L]

※もちろん「yourwordpresssite.com」はあなたのサイトのドメインに置き換えて!

以上、既出感満載なTipsでしたが、やっぱりプラグインを使った方法が一番オールマイティに安全にスラッグを書き換えれますね!