【WordPress】カスタム投稿タイプで投稿ページ・アーカイブページをつくる方法

WordPressで、「メンバー紹介ページ」「店舗一覧ページ」のように、それぞれデザインを分けて定型化した情報を掲載するには、”カスタム投稿タイプ”を使うと便利です。少しとっつきにくいですが、やってみると意外と簡単に実装できるので、WEB制作に慣れていなくてもぜひトライしてみてください♪

STEP 1) カスタム投稿タイプを作成する

function.phpに記載を追加する

プラグインを使ってカスタム投稿タイプを作ることもできますが、簡単なコードなので「function.php」で設定するのがオススメです!
function.phpは非常に大事なファイルなので、不具合があるとWEBサイトが表示できなくなったりしますので、編集作業が終わるまでは、必ず修正前のバックアップデータをとっておきましょう。

function.php //アイキャッチ画像を有効 add_theme_support('post-thumbnails'); // カスタム投稿タイプ作成 function create_post_type() { $exampleSupports = [ 'title', 'editor', 'thumbnail', 'revisions' ]; // add post type register_post_type( 'custompost',//投稿タイプの名称 array( 'label' => 'カスタム投稿',//管理画面に表示される名称 'public' => true,//trueにしないと非表示になる 'has_archive' => true,//trueにすると、アーカイブページが生成される 'menu_position' => 5,//管理画面に表示される順番 'supports' => array(//カスタム投稿の編集画面に表示する項目 'title',//タイトル 'editor',//本文 'thumbnail',//サムネイル 'custom-fields',//カスタムフィールド ), ) ); } add_action( 'init', 'create_post_type' );

上のコードの中身を簡単に説明します。

label
管理画面にカスタム投稿タイプの名称として表示されます。「メンバー」「店舗」など、どんな情報を入れるところか、分かりやすい名称をつけましょう。

menu_position
管理画面で、設定したカスタム投稿タイプが表示される順番を指定するものです。基本的に5にしておけば良いと思います。
※ 5: 投稿の下
 10: メディアの下
 20: 固定ページの下

public
必ず「true」にしましょう。

has_archive
アーカイブページを作るので、「true」にしましょう。

supports
管理画面に表示する項目を指定できます。

STEP 2) 詳細ページ(個別投稿ページ)を作成する

「single-custompost.php」というファイルを作り、コードを書き込んで、作成しているテーマのフォルダに格納してください。
(例)…/public_html/wp-content/themes/テーマ名/single-custompost.php

このとき、STEP1で、

PHP register_post_type( '****',

で入力した値を「single-****.php」の「****」のところに入れてください。

「single-custompost.php」が、このカスタム投稿タイプの詳細ページ(個別投稿ページ)になります。

(single-custompost.php の例)

single-custompost.php <?php get_header(); ?> <?php if(have_posts()): while(have_posts()):the_post(); ?> <main> <h2>;?php the_title(); ?> <?php the_content(); ?> </main> <?php endwhile; endif; ?> <?php get_sidebar(); ?> <?php get_footer(); ?>

STEP 3) 一覧ページ(アーカイブ)を作成する

方法① 「archive-custompost.php」ページを使う

このPHPファイルに、一覧ページ(アーカイブ)のコードを記述していきます。
アーカイブページのテンプレート階層の優先順位は以下の通りです。
archive-****.php
→archive.php
→index.php

方法② 固定ページテンプレートを使う

一覧ページを固定ページで作り、そのテンプレートを変えて、ページを表示させる方法です。
固定ページのテンプレートは、「page-****.php」を作成し、その冒頭に以下のコードを入れることで設定できます。

page-****.php <?php /* Template Name:テンプレートの名称(何でも良いです) */ ?>

あとは、このファイルにループ処理をするコードを入れれば完了です!

以上で〜す!

コメントを残す