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 テーマTwenty Sixteenでメンバー紹介や選手一覧などを作ってみた②

  4.まずは、function.phpに追加 テーマによっては、変更しなくてもきれいに表示されることもあります。 ※function.phpに追加する前に、念のためfunction.php …

フォトギャラリー

WordPressでフォトギャラリーを作るのに3つのプラグインを入れてみた

  プラグインを使って簡単にフォトギャラリー   WordPressの固定ページ、投稿ページ、カスタム投稿ページに写真を並べて掲載するフォトギャラリーページは、プラグインを使って簡 …

オンマウス以外

オンマウス(マウスオーバー)以外を透かす

オンマウスで透過したり、色が変わったりするのは一般的にも良くあるパターンだと思います。 でも今回は オンマウス以外に変化をつけていきたいと思います。 個人的には、少なめのメニューやカテゴリーリストされ …

オンマウス

マウスオーバーでリンク画像に変化をつける

  自分がしたことを忘れないように記事にしました。 やりたかったのは、マウスオーバー・オンマウスでリンク画像がだんだん大きくなり、上にのせていたマスクがなくなって画像がクリアになること。 い …

ヘッダー固定

【簡単】wordpress スクロールするとヘッダーが固定される

  ①一番最初に見えるヘッダーをカスタマイズ header.phpファイルに使っているテーマにより若干違いはありますが、下記のようなコードが記述されていると思います。 <div id= …