WordPressでカスタム投稿タイプを作成することで、標準の「投稿」や「ページ」以外のコンテンツを扱うことができます。カスタム投稿は、例えば「商品」「イベント」「レビュー」など、特定のコンテンツタイプに対して適切な管理ができるようにするために非常に便利です。この記事では、プラグインを使わずにカスタム投稿を設定する方法を紹介します。
1. カスタム投稿とは?
カスタム投稿タイプとは、WordPressがデフォルトで提供する「投稿」や「ページ」以外に、ユーザーが独自に定義した投稿タイプのことです。これにより、特定のコンテンツに対して独自の編集画面や管理方法を提供することができます。
2. functions.phpにコードを追加する
カスタム投稿を作成するためには、テーマのfunctions.phpファイルにコードを追加する必要があります。このコードを使うことで、WordPressに新しい投稿タイプを登録することができます。
2.1. 基本的なカスタム投稿タイプの登録
以下のコードを、テーマのfunctions.phpファイルに追加します。このコードは「商品」というカスタム投稿タイプを作成する例です。
function create_custom_post_type() {
// カスタム投稿タイプ「商品」の登録
register_post_type('product',
array(
'labels' => array(
'name' => '商品',
'singular_name' => '商品',
'add_new' => '新規追加',
'add_new_item' => '新規商品を追加',
'edit_item' => '商品を編集',
'new_item' => '新しい商品',
'view_item' => '商品を表示',
'search_items' => '商品を検索',
'not_found' => '商品が見つかりませんでした',
'not_found_in_trash' => 'ゴミ箱に商品はありません',
'parent_item_colon' => '',
'all_items' => 'すべての商品',
'menu_name' => '商品'
),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'thumbnail', 'custom-fields'),
'show_in_rest' => true,
'rewrite' => array('slug' => 'product'),
)
);
}
add_action('init', 'create_custom_post_type');
2.2. コードの解説
上記のコードは以下の設定を行っています:
- register_post_type:新しい投稿タイプ「product」を登録します。
- labels:カスタム投稿タイプ「商品」の表示ラベルを設定しています。管理画面で表示される名前やメニュー名を指定できます。
- public:投稿タイプが公開されるかどうかを設定します。「true」にすることで、フロントエンドに表示されるようになります。
- has_archive:アーカイブページを有効にするかどうかを設定します。
- supports:「タイトル」「エディタ」「サムネイル」「カスタムフィールド」など、どの機能をサポートするかを指定しています。
- show_in_rest:Gutenbergエディタに対応させるために、「true」に設定します。
- rewrite:URLのスラッグを設定することで、カスタム投稿のURLを「yourdomain.com/product/」のように変更します。
3. カスタム投稿タイプのアーカイブページを作成する
カスタム投稿タイプを作成したら、そのアーカイブページも作成したい場合があります。これを実現するためには、テーマにカスタム投稿タイプ用のアーカイブテンプレートを作成します。
3.1. archive-product.phpの作成
「商品」のカスタム投稿タイプ用のアーカイブページを作成するために、テーマのディレクトリ内に「archive-product.php」というファイルを作成します。このファイルが、カスタム投稿タイプ「商品」の一覧表示に使用されます。
<?php get_header(); ?>
<div class="product-archive">
<h1>商品一覧</h1>
<?php if (have_posts()) : ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php the_excerpt(); ?>
</li>
<?php endwhile; ?>
</ul>
<?php else : ?>
<p>商品はまだありません。</p>
<?php endif; ?>
</div>
<?php get_footer(); ?>
4. まとめ
プラグインを使わずにカスタム投稿を作成する方法は非常に簡単で、WordPressのカスタマイズ性を高めるために役立ちます。functions.phpに少しのコードを追加するだけで、特定のコンテンツタイプに合わせた投稿管理が可能になります。さらに、アーカイブページも簡単に作成でき、独自の投稿タイプに合わせた表示ができます。
ぜひこの方法を試して、WordPressの可能性を広げてみてください。
コメントを残す