はぴまむ

子育て中もハッピーに日々を過ごしたい主婦がお仕事のことや役に立った情報などをつづっています。

プラグインを使わず カスタム投稿タイプ を追加する~マテリアル編~

time 2015/07/09

カスタム投稿タイプの追加はプラグイン1つで簡単に実装できてしまいますが、そんな便利なプラグインを使わないでカスタム投稿タイプを追加してみたいと思います。

理由は簡単。ちょっとでもプラグインを減らして負荷を軽くしたいから!

今回もカラフルでかわいいWordpressのおすすめ無料テーマ、マテリアルを例に説明していきます。

マテリアルはそのまま使ってももちろん優秀なんですが、せっかくなので自分仕様にカスタマイズしてみよう!なんて人はぜひ参考にしてみてください。

みなさんおなじみだとは思いますが、カスタマイズをする時の大事なお約束。

  • 中の記述を変更するので、万が一のことも考えてバックアップをしっかりとった上で自己責任でお願いします。
  • テーマのバージョンがアップされると上書きされてしまうので、子テーマを作ってそちらでカスタマイズするようにしましょう。

マテリアルは専用の子テーマまで準備されているので自分で子テーマをつくらなくてもOK!至れり尽くせりです。

sponsored link

カスタム投稿タイプとカスタムタクソノミーについて

まずは今回追加しようとしているカスタム投稿タイプとカスタムタクソノミーについてちょっとお勉強しましょう。

カスタム投稿タイプとは?

WordPressには標準で「投稿ページ」「固定ページ」という2種類の投稿タイプが用意されています。

標準ではいっている投稿タイプ以外の、自分で追加した投稿タイプのことをカスタム投稿タイプとよびます。

このカスタム投稿タイプはテーマによってはすでに入っていたりします。

初心者におすすめ!WordPress無料テーマ3選!-はぴまむ編-でおすすめしていた無料テーマBizvektorにはお知らせというカスタム投稿タイプが追加されていますし、XeoryにはCTAとLPというカスタム投稿タイプが追加されています。

カスタム投稿タイプを追加するメリットとしては、自分に必要な投稿タイプを追加して通常の投稿とわけることで記事の整理整頓がしやすくなったりという感じです。

カスタムタクソノミーとは?

「カテゴリー」と「タグ」のことをまとめて「タクソノミー(分類)」と呼びます。

カスタム投稿タイプで作成した投稿タイプは、はじめから入っているタクソノミーが使えないので、新しくカスタム投稿用のタクソノミーを作らなければいけません。

その新しく作ったタクソノミーのことを、カスタム投稿タイプ用のタクソノミーなのでカスタムタクソノミーと呼びます。

またカスタムタクソノミーに追加できる「カテゴリ」「タグ」を総称して「ターム」と呼びます。

カスタム投稿タイプを追加してみよう

カスタム投稿タイプやカスタムタクソノミーのことがわかったところで、今回の目的、プラグインなしでカスタム投稿タイプの追加をしていきたいと思います。

fanction.phpに記述してカスタム投稿タイプを増やそう

では実際にfanction.phpに必要な記述を追記していきましょう。


add_action( 'init', 'custum_post_type' );
function custum_post_type() {
	//ここからカスタム投稿追加
	register_post_type( 'カスタム投稿名(半角英字)',
		array('labels' =>
				array(
				'name' => __( '管理画面に表示させたい名前(日本語OK)' ),
				'singular_name' => __( '管理画面に表示させたい名前(日本語OK)' )
				),
			//投稿タイプの設定
			'public' => true,
			'menu_position' => 5,
			'hierarchicla' => false,
			'has_archive' => true,
			//投稿編集ページの設定
			'supports' => array('title','editor','thumbnail',   //タイトル,編集,アイキャッチ
			'custom-fields','excerpt','author','trackbacks',    //カスタムフィールド,抜粋文&作成者,トラックバック
			'comments','revisions','page-attributes')           //コメント,リビジョン,作成者,表示順のボックス
		)
	);
}

カスタム投稿タイプを追加するだけならこれを追記するだけでOK。
追記するときはお好みのカスタム投稿名と管理画面に表示させたい名前をしっかり設定しよう。

カスタムタクソノミーとタームを追加しよう


add_action( 'init', 'custum_post_type' );
function custum_post_type() {
	//ここからカスタム投稿追加
	register_post_type( 'カスタム投稿名(半角英字)',
		array('labels' =>
				array(
				'name' => __( '管理画面に表示される文字(日本語OK)' ),
				'singular_name' => __( '管理画面に表示される文字(日本語OK)' )
				),
			//投稿タイプの設定
			'public' => true,
			'menu_position' => 5,
			'hierarchicla' => false,
			'has_archive' => true,
			//投稿編集ページの設定
			'supports' => array('title','editor','thumbnail',   //タイトル,編集,アイキャッチ
			'custom-fields','excerpt','author','trackbacks',    //カスタムフィールド,抜粋文&作成者,トラックバック
			'comments','revisions','page-attributes')           //コメント,リビジョン,作成者,表示順のボックス
		)
	);
	/* ここからカテゴリタクソノミーの設定 */
	register_taxonomy(
		'ターム名(半角英字)-cat',
		'カスタム投稿名(半角英字)', 			// 上記で指定したカスタム投稿名
		array('hierarchical' => false, 		// trueだと親子関係が使用可能。falseは親子関係使用不可
			'label' => '(任意の名前)カテゴリー',
			'singular_label' => '(任意の名前)カテゴリー',
			//カテゴリーの設定
			'public' => true,
			'hierarchical' => true,
		)
	);
  /* ここからタグの設定 */
   register_taxonomy(
		'ターム名(半角英字)_tag',
		'カスタム投稿名(半角英字)', 		// 上記で指定したカスタム投稿名
		array(
		'label' => '(任意の名前)タグ',
		'labels' => array(
		'popular_items' => 'よく使う(任意の名前)タグ',
		'edit_item' =>'(任意の名前)タグを編集',
		'add_new_item' => '新規(任意の名前)タグを追加',
		'search_items' => '(任意の名前)を検索',
		),
		'public' => true,
		'hierarchical' => false,

		)
		);
}

ハイライト部分が、ターム追加部分。

カスタム投稿名をすべて同じものにすることで、このタームはこのカスタム投稿のやつですよーって紐付けます。

任意の名前のところにはカスタム投稿追加で設定した管理画面に表示される文字と同じものを設定するとわかりやすいかと思います。

設定の例はこんな感じ。

<?php
add_action( 'init', 'custum_post_type' );
function custum_post_type() {
	//ここからカスタム投稿追加
	register_post_type( 'blog',
		array('labels' =>
				array(
				'name' => __( '子育てブログ' ),
				'singular_name' => __( '子育てブログ' )
				),
			//投稿タイプの設定
			'public' => true,
			'menu_position' => 5,
			'hierarchicla' => false,
			'has_archive' => true,
			//投稿編集ページの設定
			'supports' => array('title','editor','thumbnail',   //タイトル,編集,アイキャッチ
			'custom-fields','excerpt','author','trackbacks',    //カスタムフィールド,抜粋文&作成者,トラックバック
			'comments','revisions','page-attributes')           //コメント,リビジョン,作成者,表示順のボックス
		)
	);
	/* ここからカテゴリタクソノミーの設定 */
	register_taxonomy(
		'blog-cat',
		'blog', 			// 上記で指定したカスタム投稿名
		array('hierarchical' => false, 		// trueだと親子関係が使用可能。falseは親子関係使用不可
			'label' => '子育てブログカテゴリー',
			'singular_label' => '子育てブログカテゴリー',
			//カテゴリーの設定
			'public' => true,
			'hierarchical' => true,
		)
	);
  /* ここからタグの設定 */
   register_taxonomy(
		'blog_tag',
		'blog', 		// 上記で指定したカスタム投稿名
		array(
		'label' => '子育てタグ',
		'labels' => array(
		'popular_items' => 'よく使う子育てタグ',
		'edit_item' =>'子育てタグを編集',
		'add_new_item' => '新規子育てタグを追加',
		'search_items' => '子育てを検索',
		),
		'public' => true,
		'hierarchical' => false,

		)
		);
}

これをfanction.phpに追記すると、カテゴリーとタグつきの子育てブログというカスタム投稿タイプが新しく追加されます。

忘れちゃいけない大事なこと!

以上で設定は完了したのですが、これだけじゃサイトに反映されません

ゆいくりも、あれ?なんでなんで?ってなりました。

なんと、パーマリンク設定画面を1度開いて、設定を更新ボタンを押さないといけなかったようです。

ここまでやればプラグインを使わないカスタム投稿タイプの追加は完了です。

プラグインを使わずカスタム投稿タイプを追加する まとめ

今回のプラグインを使わないカスタマイズはどうでしたか?

カスタム投稿タイプの追加は前回のウィジェットエリアを追加するとと同様にわりと簡単にできちゃいます。

ただ、マテリアルはこれだけだとカテゴリー別ページにタイトル(カテゴリ名)なんかが表示されません。BizvektorはこれだけでOKなんですが。。

というわけで次回はタイトルを表示させる方法です。

この機会に、便利すぎていっぱいつけすぎちゃったプラグインを少しダイエットして軽くしてみませんか?

sponsored link

down

コメントする




sponsored link

はぴまむの中の人

ゆいくり

ゆいくり

30代の子育て中主婦。在宅勤務OK!という理解ある会社に拾っていただき、そこで働きながらフリーランスとしても活動中。webサイト製作などを中心に活動しています。 [詳細]