Simplicityをカスタマイズしてカスタム投稿タイプを使う方法

wordpressのカスタム投稿タイプを利用して自分なりのサイト作成をしたいと思います。
「カスタム投稿タイプ」とは通常の投稿タイプとは別の自分が定義した投稿タイプです。
投稿タイプ – WordPress Codex 日本語版

企業サイトなどwordpressをCMS(コンテンツ・マネジメント・システム)として使用する際にとても便利な機能です。
普通のブログでもカテゴリーより投稿タイプで分けた方がいいコンテンツがある場合に便利。

カスタム投稿タイプについて色々調べてみるとSimplicityのテンプレート利用すればけっこう簡単にできるみたいなのでやってみたいと思います。

だいたいの流れ
・子テーマを用意する
・子テーマのfunction.phpにカスタム投稿タイプを使えるように追記
・固定ページを作る
・固定ページ用テンプレートを作成
・パーマリンクを更新
・Simplicityのテンプレートをカスタマイズしてカスタムタクソノミー(カスタム投稿タイプ用のカテゴリーとタグ)を表示

ここまで。
自分で新たに名前つけてファイルを作るのは固定ページ用テンプレートだけです。

スポンサーリンク

子テーマを用意する

Simplicityのサイトに子テーマも用意されておりますのでダウンロードして使わせていただきましょう。

子テーマのfunction.phpにカスタム投稿タイプを使えるように追記

投稿画面
レシピを料理カテゴリと食材から検索できるようにします。


//以下にSimplicity子テーマ用の関数を書く

// カスタム投稿タイプ
add_action( 'init', 'create_post_type' );
function create_post_type() {
	register_post_type( 'recipes', // 投稿タイプ名の定義
		array(
			'labels' => array(
			'name' => __( 'レシピ' ), // フロントで表示する投稿タイプ名
			'singular_name' => __( 'レシピ' )
		),
		'public' => true,
		'menu_position' =>5,
		'supports' => array('title','editor','thumbnail','custom-fields','excerpt','revisions','page-attributes','comments')
		)
	);
}

// カスタムタクソノミー 
//カテゴリータイプ
$args = array(
'label' => 'レシピカテゴリ',
'public' => true,
'show_ui' => true,
'hierarchical' => true
);
register_taxonomy('original_category','recipes',$args);//タクソノミーの名前,タクソノミーオブジェクトのオブジェクト名
 
//タグタイプ
$args = array(
'label' => '食材',
'public' => true,
'show_ui' => true,
'hierarchical' => false
);
register_taxonomy('original_tag','recipes',$args);

食材はタグとして登録したいと思います。

参考サイト
[WordPress]3大カスタム要素、カスタム投稿タイプ・タクソノミー・フィールドを使いこなす | バシャログ。
WordPressのカスタム投稿タイプで独立コンテンツを作る方法まとめ #wacja2012 | 株式会社ウェブロジー

固定ページを作る

固定ページを作って一覧表示する方法を使います。
まずwordpressの管理画面で固定ページをひとつ追加します。

固定ページ用テンプレートを作成

その固定ページで使うテンプレートを作成します。

作業はsimplicity-childフォルダでやっていますね。移動してsimplicityのフォルダにあるindex.phpをコピーしsimplicity-childにペーストします。index.phpをrecipes.phpに名前を変えます。
そのファイルを開き編集します。


テンプレートに名前をつけて、ヘッダーを呼び出します。


メインクエリーを置き換えます。


ループはSimplicityのlist.phpを呼び出すことでできます。
そのあとfooterも呼び出します。
index.phpをコピーしているので残しておいてOK。

参考サイト
WordPressでブログじゃないWebサイトを作るときのいろいろ(サンプル付き)
「query_posts」を「WP_Query」「pre_get_posts」に書き換える方法 | 株式会社まちいろ 〜 街に真心と感動を増やすIT企業

パーマリンクを更新

固定ページでレシピ型投稿を呼び出したらチェックしてみましょう。

ここでパーマリンクを更新(設定はそのままで空更新で大丈夫)しないとファイルがないと言われます。
管理画面の設定→パーマリンク設定で更新しましょう。

sc
こんな感じで表示されます。

カスタムタクソノミー(カスタム投稿タイプ用のカテゴリーとタグ)を表示

エントリーのページ
エントリーの詳細ページにカスタム投稿タイプ用のカテゴリーとタグを表示します。
Simplicityのentry-body.phpをコピーして子テーマフォルダに保存してから編集します。

レシピカテゴリは

食材は

「get_the_term_list」は指定したカスタムタクソノミーの情報を取得します。

参考サイト
カスタムタクソノミーをカテゴリーのように記事ページに出力する便利な関数「get_the_term_list」と「get_the_terms」 | TechMemo

まとめ

Simplicityを利用してカスタム投稿タイプを設定するとlist.phpを呼び出せば一覧表示できて便利ですね。
カスタム投稿タイプを使えば普通の投稿タイプとは違うコンテンツ表示ができていろいろ使えそうです。食材からレシピを探すなど、個人サイトでも専門サイトっぽいことができていいですよね。