WordPressには標準で「投稿」と「固定ページ」が用意されています。
しかし、商品情報や制作実績など、投稿とは別に管理したいコンテンツが出てくることがあります。
そのような場合に利用するのが カスタム投稿タイプ です。
カスタム投稿タイプを作成すると、管理画面に独自のメニューを追加できるようになります。
有名なプラグインであるWooCommerceも、この仕組みを利用して商品管理機能を実現しています。
今回はカスタム投稿タイプの作成方法と、表示画面との関係について確認していきます。
カスタム投稿タイプの登録と呼び出し
カスタム投稿タイプを作成するには、テーマファイルの中のfunctions.phpファイルに記述します。
親テーマのfunctions.phpファイルはいじらずに、子テーマ、つまり自分で作っているテーマのフォルダの中にfunctions.phpというファイルを作って、ここに記述する形になります。
カスタム投稿タイプを登録
function register_sample_post_type()
{
register_post_type(‘custom1’, array(
//nameは名称。singular_nameは管理画面の項目名。
‘labels’ => array(
‘name’ => ‘カスタム投稿1’,
‘singular_name’ => ‘カスタム投稿1’,
),
//publicは管理画面で表示されるかどうか。
‘public’ => true,
//一覧を持つかどうか。
‘has_archive’ => true,
//コンテンツの中身の項目。
‘supports’ => array(
‘title’,
‘editor’,
‘thumbnail’
),
//管理画面の表示順の指定。
‘menu_position’ => 24,
));
}
add_action(‘init’, ‘register_sample_post_type’);
登録しただけでは管理画面に表示されないので、add_action関数で呼び出すことで管理画面に表示されるようになります。

カスタム投稿タイプの記事の中身の表示
カスタム投稿タイプを作った後は、管理画面からタイトルや文章を記述します。
そして、その中身を表示する為には、こてページや投稿の時と同様にqueryとloopを使用します。
index.phpには以下のような記述を書きます。
やっている事としては、$argsにカスタム投稿タイプの中身の条件を指定して、後はqueryとloopを使って呼び出しているだけなので、投稿や固定ページの中身の取得方法を理解していれば、同様に理解できると思います。
カスタム投稿タイプの中身の取得
$args = array(
‘post_type’ => ‘custom1’,
‘posts_per_page’ => 3
);
$query = new WP_Query($args);
if ($query->have_posts()) :
while ($query->have_posts()) :
$query->the_post();
the_title(‘<h2>’, ‘</h2>’);
the_content();
endwhile;
wp_reset_postdata();
endif;
woo commerceなどの通販サイトを作成できるプラグインでも商品をカスタム投稿タイプで作成する構成になっています。なので、カスタム投稿タイプの基本を理解することでワードプレスの管理画面の仕組みを理解してプラグインを使用していくことに役立つと思います。

