wordpressのカテゴリー編集

カテゴリーは、分野や種類という意味合いがあります。いわゆるジャンルのことですね。wordpressでいうカテゴリーも、似たような意味となります。ではなぜwordpressにカテゴリーが必要なのかといえば、それはコンテンツの種類ごとに記事を分けてカテゴリーへリンクを貼ると、ユーザが求める情報を提示しやすくなるためです。同時に回遊率が少し上がる可能性があります。

wordpressのカテゴリー

カテゴリーと検索機能は似たようなもの

wordpressには検索機能がついています。入力されたキーワードに対して関連する記事のURLを出力しますが、これもある意味、カテゴリー分けしているようなものです。というのは、関連するであろうページをwordpressで投稿時に手動で設定するか、プログラムによって関連キーワードを含んだ記事を自動的に出力するか、の違いしかないからです。

関連記事プラグインと検索機能

wordpressには、関連記事を出力させるプラグインがあります。同時にwordpressに標準搭載されている検索機能もあります。両者の違いは関連性を抽出する計算の方法が違うだけで、やっていることは同じです。ただ、プラグインの方が若干高度な計算をしているとおもいますが、検索エンジンに比べると単純なものとなります。

必要性

上で述べたように、ユーザが求める情報へのアクセスを容易にすることと、回遊率を上げることに加え、SEOの観点からも推奨されています。ただ、10件や20件といった出力で本当に意味があるのかといえば、実際のところ分かりません。wordpressのカテゴリーがサイトマップのように整理されていて、どこにどういったコンテンツがあるのか、一目瞭然になっていれば別ですが、10件程度ならんだwordpressブログのカテゴリーをわざわざ見に行くことはあまりないように思います。むしろ、検索エンジンに戻って他のサイトを見に行くケースのほうが多いのではないでしょうか。とはいえ、ブラウザの戻るボタンや×ボタンをクリックされないように工夫することも重要です。

表示の順番を変えるプラグイン

「Category Order and Taxonomy Terms Order」などのプラグインをインストールすれば簡単に順番を変えることができます。順番を変えるプラグインはいくつかありますが、wordpressへログインし、管理画面から公式のものをインストールしたほうが無難です。wordpressの審査を受けたものが提示されているため、セキュリティ的にも安心だからです。

テーマのテンプレート

どのテンプレートが使われるのか?

wordpressでは、カテゴリーテンプレートとして、「category.php」を使用します。しかしwordpressテーマにこのファイルを入れなければ、「archive.php」を自動的に使用するようになっています。つまり、「archive.php」があれば、「category.php」がなくても動作します。「archive.php」は、あるカテゴリ、作成者、日付が要求された際に使用されるテンプレートで、これ一つで複数の役割を担っています。年月のアーカイブなどもこのarchiveファイルが担当しています。

中身のコード

以下のようなコードを記述していることが多いです。「if{}」か「if:endif;」のどちらを用いるかで記述の仕方も異なりますが、両者は同じ結果を返します。wordpressのテンプレートでは、「if:endif;」を利用していることが多いです。括弧のみを用いた書式では、どこで閉じられているのか分かりにくいためです。

if (have_posts()) : while (have_posts()) : the_post();
~処理~
endwhile; else:
~処理~
endif;
if (have_posts()) { while (have_posts()) { the_post();
~処理~
}}else{
~処理~
}

テンプレートタグを使用してカスタマイズ

wordpressのユーザ定義関数get_the_categoryから配列のデータを取り出します。

get_the_categoryの配列表示

以下のコードをphpタグで囲んでテンプレートに記述すると、配列が出力されます。また、preタグで囲むと見やすく整形してくれます。出力形式は「キー => 値」となり、値が存在しなければ空になります。

echo '<pre>';
print_r(get_the_category());
echo '</pre>';

スラッグとIDの取得

以下のコードをwordpressのテーマテンプレートに記述すると、投稿が属するカテゴリーのスラッグとID番号が出力されます。category内で使用しても同様となります。配列にはwordpressのカテゴリーに関する情報が入っているため、代入した変数($cats)にアロー演算子をつけて配列のキーを指定すると、個別に取り出すことができます。$cats[0]の[0]は先頭要素の指定です。配列のキーは[1]からではなく、[0]からはじまります。ただし、子カテゴリーを作成している場合は、多次元配列の親子の要素が入れ替わることがあるため、うまく動作しません。

$cats = get_the_category();
echo $cats[0]->cat_name;
echo $cats[0]->cat_ID;
get_the_category

昔はどうなっていた?

wordpressのようなCMSが登場する以前は、そもそもカテゴリー自体がないサイトも多く存在していたように記憶しています。当時はサイトマップが推奨されていたような気が。では、カテゴリーがない状態で、どうやってリンクを構築していたかというと、現在でいうサイドバーやフッター領域に、関連ページのリンクをAタグで一つ一つ設定していました。ディレクトリ(フォルダ)の中に「index.html」を入れない状態です。もちろん、インデックスにきちんとコンテンツを入れているサイトもありましたが。

wordpressでは、「index.html」や「index.htm」というような概念はなくなりましたね。ディレクトリ階層も標準だと横一列になって、カテゴリーが二階層。そもそも「.html」などの拡張子がwordpressのデフォルトで使われなくなりました。当たり前だった階層構造がワードプレスの登場で消えてしまったような感じです。これはワードプレスというより、CMSの登場による変遷かも知れません。

CMSは、コンテンツ・マネジメント・システムの略。直訳すると内容の管理を行う仕組みのことです。ワードプレスにあてはめると記事や画像などを管理する仕組みのことですが、CMSは何もワードプレスに限りません。多くのサイトに導入され、むしろCMSでないほうが珍しくなっている状況ですかね。

SEO的には?

コンテンツを入れることで評価があがるという意見もありますが、実際そのやりかたで上位表示を実現しているサイトもみかけます。しかし、本来の意味とは異なる使い方をしているような気もするのですが。また、クローラが回遊しやすいのは事実だと思うのですが、ユーザの回遊率を上げるには、それなりに分かりやすい構造が必要のようにもおもいます。

幸い、ワードプレスは自分で好きなように様々な調整ができるようになっていますので、これを使わない手はありません。ワープレは基本的にphpにて動いているため、これを習得することで様々な改造ができます。特にワープレによる記事表示に関しては、javascriptやcssなどより学習の優先度が高いと思います。

まとめ

HTML直入力の時代は、カテゴリーなどという特別なファイルを作って用意することもなかった概念ですが、ワープレなどのCMSが登場してからは当たり前になってきました。また、昔はコンテンツもせいぜい段落やHタグを利用したものでしたが、こちらも各ページごとに「目次」を作るといった形に変遷しています。目次はもともと書籍の最初に入れられているものですが、書籍とウェブページとでは、求められるものが違うということなのでしょう。

ちなみにワープレは誰でも簡単に導入できるシステムです。つまり簡単に他人の真似ができてしまうシステムでもあります。本当の意味でワープレを使いこなすためには、創意工夫が必要です。そういったアイデアがインターネット上に流れることはありませんし、ネット上で見かけるようになったら、その技術はすでに創意工夫されたアイデアではありません。結局、自分で考えるしかないのでしょうね。