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

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

関連記事

メンバー紹介選手紹介

WordPress テーマLIQUID PRESSでメンバー紹介や選手一覧などを作ってみた③

  1.プラグインAdvanced Custom Fieldsをインストール   左メニューのプラグイン→新規追加→検索窓に「Advanced Custom Fields」を入力す …

sliderコピー

ヘッダーのスライドショーをページ毎に変える方法

前回の記事で、「ヘッダー画像やスライダーをページ毎に変える方法」を紹介しましたが、 今回は引き続き、スライドショーができるプラグインを使った方法をやってみましたので紹介します。   Smar …

ワードプレス

WordPress テーマTwenty Sixteenでメンバー紹介や選手一覧などを作ってみた③

9.メンバー登録 上図のような画面になって、投稿ができるようになります。 では、さっそく1人目を登録します。 ①「ここにタイトルを入力」のところに「日本 太郎」としてみます。 ②アイキャッチ画像のとこ …

google api

Google Maps APIキー取得方法

Google Maps APIキー取得方法 Google Maps APIを取得する前に、Googleのアカウントを取得してください。 こちらから取得します → https://developers. …

Google FontがEdgeで表示されない

Google FontsがEdgeで表示されない場合

  <link>で読み込んだのにEdgeで正しく表示されない   <link href=”https://fonts.googleapis.com/css2?fa …