技術と経験で、価値のあるホームページ制作を。ホームページ制作を通じて、お客様に利益をもたらすことを追求します。

技術と経験で、価値のあるホームページ制作を。ホームページ制作を通じて、お客様に利益をもたらすことを追求します。

ブログ

HOME > 花のやブログ > WordPressで階層とURLを考慮した設計
2014/10/14ホームページ制作Wordpress

WordPressで階層とURLを考慮した設計

こんにちは、和田です。

WordPressの3.0くらいからカスタム投稿・カスタム分類などが簡単に設定できるようになり
今ではほとんどの案件でこの機能を使用していますが、ちょっと悩んだりするのがその際に自動で作られるアドレス・URLとそれぞれの階層構造です。

今回はWordPressでサイトを制作するにあたって、これらの問題点や注意点、それに対する対策方法などを紹介しようと思います。

 

 desc1よくあるような左の構造のページを作るという想定で説明しようと思います。

普通に作っていけば、ページトップから、商品一覧(productというカスタム投稿)、店舗一覧(shopというカスタム投稿)等は問題なく作っていけると思います。

 一番問題になるのが「ブログ一覧」ですね。
方法はいくつかありますが

  • blogというカスタム投稿を作る。
  • 普通の投稿(post)を使い、ブログ一覧を固定ページで作成する。

の2案で対応するのが多いのではないでしょうか?

 カスタム投稿で対応する場合のメリットとデメリット
  • 分岐やテンプレートファイルが増えてしまう
  • 投稿(POST)が無駄になってしまう
  • 本来のテンプレートタグ等(カレンダー表示等)がそのままで使えない
一覧を固定ページで作成する場合のメリットとデメリット
  • 本来のテンプレートタグがそのまま使用できる
  • 専用のテンプレートファイルを作る必要がある
  • 一覧表示の固定ページを1つ作らなければいけない

どちらもある程度、知識などが必要になってきてしまいますがこのような感じになるでしょう。

さて、それぞれのメリットとデメリットを把握した上で、弊社での対応方法を紹介します。

 

なるべく自然になるような階層構造をWordPressで作る方法

ブログとして成立させるためのカレンダーウィジェットやカテゴリーリストなど、1つ追加しようとするたびにその投稿タイプで対応できるようにするのは大変なので、やはりブログとして使うには標準の投稿(post)を使用するのが一番だと思います。

パーマリンク構造の変更

まずはパーマリンクを変更します。
下図の様にすると投稿に/blog/というディレクトリ構造になります。

desc2

ただし、この設定をすると通常では他のカスタム投稿も/blog/が付与されてしまいます。
※固定ページにはこのディレクトリ構造は反映されませんので特別なことをしなければそのままでいいでしょう。
これは各カスタム投稿のオプションでwithFrontをfalseに設定すれば外れます。

Custom Post Type UIプラグインの場合は「Advanced Option」内に設定項目があります。

desc3

これで、ブログの詳細まではURLは希望通りの形になったと思います。
あとはブログの一覧機能となります。

 

通常投稿(post)の一覧表示

これは有名なプラグインcustom post type permalinksの作者TORO-Unitさんが公開されているもう一つのプラグイン Post archiveを使用します。

ただ、少し古くWordPress3.9あたりからエラーが出てしまうようになっています。
action hookのparse_queryの時点でWordPressの関数get_query_varが利用できなくなった為のようですので少し変更します。

このプラグインのpost-archive.phpの80行目辺りの関数 set_conditionalを以下のように変更します。

	public function set_conditional( $arr ) {
//		if( get_query_var( 'post_type' ) =='post' ){
		if( $arr->query_vars['post_type'] =='post' ){
			$arr->is_home = false;
			$arr->is_archive = true;
			$arr->is_post_type_archive = true;
		}
		return $arr;
	}

これでこのプラグインが利用できるようになりましたので後はインストールし、有効化すると投稿の一覧が /blog/で表示されるようになりました。
このプラグイン結構重宝しているのでcustom post type permalinksと統合してくれると嬉しいです。

 このプラグインを利用するメリット、固定ページでの一覧を選ばないメリットはやはりis_archive()での判定ができたりarchive.phpだけで済ませられるという点です。

いくつも分岐させたりテンプレートファイルが無駄に増えたりすると色々管理するのが大変になりますからね。

wada

書いた人:wada

エンジニア担当の和田です。
ボウリングの機械のメカニックから、漆を塗ったりトラックの運転手をしたりと
紆余曲折ありましたが最終的にプログラマーへと転職してしまいました。

人気記事ランキング

株式会社 花のや
〒460-0011
愛知県名古屋市中区大須4-1-79 第2ハヤシビル 3F

花のやについて

お仕事のご依頼やご相談は、下記の電話番号
または、メールフォームよりお問い合わせください。
TEL.052-251-7090 / FAX.052-251-7092

お問い合わせ