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

  WordPressでスポーツチームやサークルまたは、企業やショップなどの人物紹介などのページを作るときに行う方法として、Web製作者それぞれやり方はあると思いますが、独学で学んだ私が作っ …

レスポンシブWordPressテーマ

プロが選ぶWordPressテーマテンプレート無料有料

レスポンシブWordPressテーマ 「LIQUID PRESS」 累計2千DL突破! 日本語対応レスポンシブWordPressテーマ スマホ/PC表示切替OK! Bootstrap対応! こんな方に …

seo対策

WordPressのSEO対策は簡単にプラグインで出来る

SEOとは、Search Engine Optimizationの略で、検索エンジン最適化のことです。 検索することによって表示される順位をより高い順位にすることを目的としています。 まず始めに、Go …

リストメニューを順番に表示

メニューリストを横から順番に表示させる jsとcss

  前回の記事では、『メニューリストを横から順番に表示させる cssのみ』ということで、 cssだけで動きのあるメニューを作成しました。   今回は、jsファイルに書き込んで同じよ …

Delete kasutamufi-rudo

カスタムフィールドを削除できるプラグインはこれでOK!

サイトを作り始めの頃、作ってしまったカスタムフィールドだけど、いらなくなったものを消したいのにどうやれば消すことができるんだろうって思っていました。 カスタムフィールドが多くなって訳がわからなくなった …