wordpress

【サンプル】プラグインなしでカスタム投稿タイプを複数作る

投稿日:2017年10月3日 更新日:

カスタム投稿
 

あまりWordPressをテクっていない私が、今回はプラグインなしでカスタム投稿タイプを作ってみました。

たぶん、詳しい人からするとかなり簡単にできてしまうんだと思いますが、

詳しい人ほど、説明まで難しいんですよ 😥

そこで、やってみたことをここで紹介します。

 

①プラグインなしでカスタム投稿を作る

 

もちろん有名なプラグイン「Custom Post Type UI」っていうのがあるのでそちらからでも可能です。

プラグインページ → Custom Post Type UI

カスタム投稿タイプ プラグイン
それでは、子テーマの「functions.php」に記述していきたいと思います。

その前に、念のためバックアップは取っておいた方がいいです。

 

// 営業部-おしらせ-
function homepage_info_sales() {
	$labels = array(
		"name" => __( '営業部-お知らせ', '' ),
		"singular_name" => __( '営業部-お知らせ', '' ),
	);

	$args = array(
		"label" => __( '営業部-お知らせ', '' ),
		"labels" => $labels,
		"public" => true,
		"publicly_queryable" => true,
		"has_archive" => true,
		"capability_type" => "post",
		"rewrite" => array( "slug" => "sales_info", "with_front" => true ),
		"query_var" => true,
        'menu_position' => 20,
		"supports" => array( "title", "editor", "thumbnail", "custom-fields", "author", "page-attributes", "post-formats" ),
	);

	register_post_type( "sales_info", $args );
}
add_action( 'init', 'homepage_info_sales' );

 
これでとりあえず一つ出来ました。
 
もう一つ作ります。
 

// 営業部-イベント-
function homepage_event_sales() {
	$labels = array(
		"name" => __( '営業部-イベント', '' ),
		"singular_name" => __( '営業部-イベント', '' ),
	);

	$args = array(
		"label" => __( '営業部-イベント', '' ),
		"labels" => $labels,
		"public" => true,
		"publicly_queryable" => true,
		"has_archive" => true,
		"capability_type" => "post",
		"rewrite" => array( "slug" => "sales_event", "with_front" => true ),
		"query_var" => true,
        'menu_position' => 20,
		"supports" => array( "title", "editor", "thumbnail", "custom-fields", "author", "page-attributes", "post-formats" ),
	);

	register_post_type( "sales_event", $args );
}
add_action( 'init', 'homepage_event_sales' );

 

【説明】

// 営業部-お知らせ-
function homepage_info_sales() {   //【サブドメイン・ドメインなど】_【今回はお知らせなのでinfoにしました】_【部門・カテゴリーなど】
	$labels = array(
		"name" => __( '営業部-お知らせ', '' ),  //日本語でわかりやすくしました
		"singular_name" => __( 'サンプル-お知らせ', '' ),  //日本語でわかりやすくしました
	);

	$args = array(
		"label" => __( 'サンプル-お知らせ', '' ), //管理画面のメニューに表示される部分ですので日本語でわかりやすくしました
		"labels" => $labels,  //ここはこのままで
		"public" => true, //フロントエンド上で公開するかを設定する項目です。通常はtrueにします。
		"publicly_queryable" => true, //フロントエンドで post_type クエリが実行可能かどうか-投稿でもページでも出力できる
		"has_archive" => true, //これをtrueにすると、アーカイブページを持つことができるようになります。
		"capability_type" => "post", //通常は post
		"rewrite" => array( "slug" => "sales_info", "with_front" => true ), //"slug" =>"英語で記述してください"
		"query_var" => true, //http://ブログのアドレス/?カスタム投稿タイプ名=個々のカスタム投稿のスラッグ」のアドレスで開きます
        'menu_position' => 20, //管理画面のメニューで表示される順番です
		"supports" => array( "title", "editor", "thumbnail", "custom-fields", "author", "page-attributes", "post-formats" ),
	); //カスタム投稿タイプの編集・新規作成のページに表示する項目

	register_post_type( "sales_info", $args ); //この関数で投稿タイプを追加します rewriteのslugで決めたのを記述
}
add_action( 'init', 'homepage_info_sales' ); //一番上の function homepage_info_sales() { の homepage_info_sales を記述

 
以上カスタム投稿ページを作ってみました。

後は、single-sales_info.php と single-sales_event.php を single.php からコピーして用意すれば無事に見れました。
 
最後に、一覧ページ (アーカイブページ)についても上記と同じように、archive-sales_info.php と archive-sales_event.php を archive.php からコピーして用意すれば無事に見れました。
 

-wordpress
-, ,


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

360カメラ

できた!360度カメラの画像をWordPressに

  プラグインで簡単に!   360度カメラで撮影した画像をWordPress(ワードプレス)の固定ページや投稿ページまたは、カスタム投稿タイプなどに使いたいときに便利なのが、 『 …

google アナリティクス

GoogleアナリティクスをWordPressに導入設置

  自分のブログやサイトを持っている方にとって必須ともいえるアクセス解析ツールです。このツールを利用することによって、ブログやサイトの細かなアクセス状況によって分析することができるようになり …

スクロールボタン

スクロールボタン コピペでできる

    WordPressでスクロールボタンを設置   php部分 <div class="scroll" href="#first- …

記事一覧表示

固定ページにカスタム投稿記事一覧表示

    固定ページにアイキャッチ画像付きの記事一覧を表示させたい   そこで、やりたかった主なことは以下の部分です。   ・いろいろプラグインなどもあるが、プラ …

予約1

MTS Simple Booking-Cで指定した日の指定した時間だけ受け付けないようにする

  この日のこの時間だけ受け付けないようにしたい   無料版の予約システム【MTS Simple Booking-C】はすごく簡単に予約可能なプラグインですが、 ある程度決まったス …