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

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

関連記事

google api

Google Maps APIキー取得方法

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

子テーマ functions.php

WordPress 子テーマのcssを読み込む

  親テーマのスタイルシート【style.css】の上部には、各テーマによって若干違いはあるが、以下のような記述があると思います。 @charset “UTF-8”; /*——— …

スマートスライダー

Smart Sliderのプラグインで画像に網掛け

  スライダー画像に網掛けをする   簡単にフェードアウトやスライダーができるWordPressのプラグインで有名な【Smart Slider】を使って、画像に網掛けをしたいと思い …

google アナリティクス

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

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

cssのcolumnでフロントページにランダム表示

CSSのcolumnでフロントページにランダム表示

  トップページに投稿記事をランダムに表示   通常トップページに表示するのは、 ・固定ページ ・投稿記事 のどちらかが多いと思いますが、 今回は投稿記事の新着順ではなく、ランダム …