Custom Post Type UIの使い方

カスタム投稿タイプを作る 〜Custom Post Type UIの使い方〜

Custom Post Type UIプラグインを使うと簡単に作成できます。
投稿機能をブログに使いたくて、お知らせ用にもう1つ投稿機能が欲しい場合には、カスタム投稿タイプを追加することができます。

はじめに

作りたいもののサンプル

出来ることが多すぎるので、今回は投稿機能をお知らせ用にもう1つ作る事に絞って説明します。

投稿タイプを追加する

プラグインの画面

管理画面の、CPT UIの投稿タイプの追加と編集にすすみ・・・
投稿タイプスラッグは、URLになります。
https://example.com/{custom-type-slug}
このようなURLになるため、小文字の半角英数字で指定。
複数形のラベル単数形のラベルについて、今回は単純にサイドバーに表示されるメニュー名という認識でOKです。

投稿タイプスタッグで使えない文字列。
post / page / attachment / revision / nav_menu_item / action / order / theme
-(ハイフン)は使えるが、使った場合、管理画面の一覧で列を追加できなくなります。

追加ラベルについて

ラベルは、表示文字列の指定ができますが、今回は使いません。
例)サイドバーの「新規追加」という文字やゴミ箱に捨てた場合の表示文字などの変更に使います。

設定

カスタム投稿のアーカイブ設定

アーカイブありの項目は、カテゴリーの投稿一覧を使うため、trueにします。

カスタム投稿でサポートするフィールド設定

サポートの項目は、WordPressデフォルトに合わせるため「ページ属性」と「なし」以外にチェックを入れます。
不要なものはチェックを入れなくてもOKです。

カテゴリー機能を使う

カスタム投稿でカテゴリーを使う場合の設定

管理画面の、CPT UIのタクソノミーの追加と編集にすすみ・・・
タクソノミースラッグは、後ほどURLとして利用するため、小文字の半角英数字で指定。
今回は、「categorize」を指定。
ラベルについては、今まで同様にサイドバーに表示されるため分かりやすく「カテゴリー」とします。
利用するタイプについては、初めに作った投稿タイプを指定します。

この階層設定が必須

今回も「追加ラベル」は飛ばして、「設定」の階層trueにします。
※ここをfalseにすると、投稿画面での表示がタグのようになります。

管理画面の記事一覧にカテゴリーを表示する

管理画面でカラムを表示trueにする事で、管理画面の投稿一覧にカテゴリーを表示することができます。

タグ機能を使う

カスタム投稿でタグ機能を使う設定

管理画面の、CPT UIのタクソノミーの追加と編集にすすみ・・・
タクソノミースラッグは、後ほどURLとして利用するため、小文字の半角英数字で指定。
今回は、「tags」を指定。
ラベルについては、今まで同様にサイドバーに表示されるため分かりやすく「タグ」とします。
利用するタイプについては、初めに作った投稿タイプを指定します。

この階層設定が必須

今回も「追加ラベル」は飛ばして、「設定」の階層falseにします。
※ここをtrueにすると、投稿画面での表示がカテゴリーのように選択式なります。

管理画面の記事一覧に表示する

管理画面でカラムを表示trueにする事で、管理画面の投稿一覧にタグを表示することができます。

テンプレートファイルについて

カスタム投稿の管理画面 完成図

これにて管理画面は完成です。
続いて、表示側のテンプレートファイルの優先順位について。

お知らせ(info)の一覧

投稿タイプのスラッグを、infoにした場合です。

  1. archive-info.php
  2. archive.php
  3. index.php

投稿タイプのスラッグをinfo以外にした場合、1のinfo部分を指定した文字列に置き換える。

投稿ページ

投稿タイプのスラッグを、infoにした場合です。

  1. single-info-{post_slug}.php
  2. single-info.php
  3. single.php
  4. singular.php
  5. index.php

投稿タイプのスラッグをinfo以外にした場合、1と2のinfo部分を指定した文字列に置き換える。
{post_slug}の部分は、実際の投稿スラッグに読み替えてください

カテゴリーの投稿一覧

カテゴリー機能設定時のタクソノミースラッグを、categorizeにした場合です。

  1. taxonomy-categorize-{term_slug}.php
  2. taxonomy-categorize.php
  3. taxonomy.php
  4. archive.php
  5. index.php

カテゴリー機能のタクソノミースラッグを、categorize以外にした場合、1や2のcategorize部分を指定した文字列に置き換える。
{categorize}の部分は、投稿の実際のカテゴリースラッグに読み替えてください

タグの投稿一覧

タグ機能設定時のタクソノミースラッグを、tagsにした場合です。

  1. taxonomy-tags-{term_slug}.php
  2. taxonomy-tags.php
  3. taxonomy.php
  4. archive.php
  5. index.php

カテゴリー機能のタクソノミースラッグを、tags以外にした場合、1や2のtags部分を指定した文字列に置き換える。
{term_slug}の部分は、投稿の実際のタグスラッグに読み替えてください

TOPページなどにサブループでカスタム投稿を表示する

WP_Query()で出力

<?php
	$args = array(
		'post_type' => 'info',
		'posts_per_page' => 3,
	);
	$query = new WP_Query($args);
?>

<?php if ( $query->have_posts() ) : ?>
	<ul>
<?php while ( $query->have_posts() ) : $query->the_post();?>
		<!-- loop start -->
		<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
		<!-- // loop end -->
<?php endwhile; ?>
	</ul>
<?php endif; wp_reset_postdata(); ?>

get_posts()で出力

<?php
	$args = array(
		'post_type' => 'info',
		'posts_per_page' => 3,
	);
	$my_posts = get_posts( $args );
?>

<?php global $post; ?>
	<ul>
<?php foreach ( $my_posts as $post ) : setup_postdata( $post ); ?>
		<!-- loop start -->
		<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
		<!-- // loop end -->
<?php endforeach; ?>
	</ul>
<?php wp_reset_postdata(); ?>

ダウンロード先

脱プラグイン

時間短縮できて、ものすごく便利ですが初期に設定したら以降はほとんど触らないプラグインなので、脱プラグインをしたくなった方向けの方法は近日公開。