WordPressでカスタム投稿タイプとカテゴリー一覧ページを作成する方法

WordPressでは、カスタム投稿タイプを作成して、特定のコンテンツを管理することができます。今回は、「映画レビュー」というカスタム投稿タイプを作成し、カテゴリー一覧ページを作成する方法を解説します。

1. カスタム投稿タイプの作成

まず、テーマの functions.php ファイルにカスタム投稿タイプを作成するコードを追加します。

コード例:

function create_movie_review_post_type() {
$labels = array(
'name' => '映画レビュー',
'singular_name' => '映画レビュー',
'menu_name' => '映画レビュー',
'name_admin_bar' => '映画レビュー',
'add_new' => '新規追加',
'add_new_item' => '新しい映画レビューを追加',
'new_item' => '新しい映画レビュー',
'edit_item' => '映画レビューを編集',
'view_item' => '映画レビューを表示',
'all_items' => '全ての映画レビュー',
'search_items' => '映画レビューを検索',
'parent_item_colon' => '親映画レビュー:',
'not_found' => '映画レビューが見つかりません。',
'not_found_in_trash' => 'ゴミ箱に映画レビューが見つかりません。',
);

$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'movie-reviews'),
'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'),
'taxonomies' => array('category', 'post_tag'),
'show_in_rest' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-video-alt',
);

register_post_type('movie_review', $args);
}

add_action('init', 'create_movie_review_post_type');

2. パーマリンク設定の更新

カスタム投稿タイプを作成した後、WordPressの管理画面から「設定」→「パーマリンク設定」を開き、「変更を保存」をクリックしてパーマリンク設定を更新します。

3. カスタム投稿タイプの詳細ページの作成

カスタム投稿タイプの詳細ページを作成するために、テーマフォルダ内にカスタムテンプレートファイルを作成します。

手順:

  1. テーマフォルダに移動
  2. テンプレートファイルを作成single-movie_review.php
  3. テンプレートファイルにコードを追加

コード例:

<?php
get_header();
?>

<div id="primary" class="content-area">
<main id="main" class="site-main">
<?php
while ( have_posts() ) :
the_post();
?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<header class="entry-header">
<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
</header><!-- .entry-header -->

<div class="entry-content">
<?php
the_content();

wp_link_pages( array(
'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'textdomain' ),
'after' => '</div>',
) );
?>
</div><!-- .entry-content -->

<footer class="entry-footer">
<?php
if ( is_singular( 'movie_review' ) ) {
echo get_the_date();
echo ' by ';
echo get_the_author();
}
?>
</footer><!-- .entry-footer -->
</article><!-- #post-<?php the_ID(); ?> -->

<?php
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;

the_post_navigation(
array(
'prev_text' => '<span class="nav-subtitle">' . esc_html__( 'Previous:', 'textdomain' ) . '</span> <span class="nav-title">%title</span>',
'next_text' => '<span class="nav-subtitle">' . esc_html__( 'Next:', 'textdomain' ) . '</span> <span class="nav-title">%title</span>',
)
);

endwhile;
?>
</main><!-- #main -->
</div><!-- #primary -->

<?php
get_sidebar();
get_footer();
?>

4. カテゴリー一覧ページの作成

カスタム投稿タイプのカテゴリー一覧ページを作成するために、テーマフォルダ内にテンプレートファイルを作成します。

手順:

  1. テーマフォルダに移動
  2. テンプレートファイルを作成taxonomy-category.php
  3. テンプレートファイルにコードを追加

コード例:

<?php
get_header();
?>

<div id="primary" class="content-area">
<main id="main" class="site-main">
<?php
if ( have_posts() ) :
?>

<header class="page-header">
<?php
the_archive_title( '<h1 class="page-title">', '</h1>' );
the_archive_description( '<div class="archive-description">', '</div>' );
?>
</header><!-- .page-header -->

<?php
while ( have_posts() ) :
the_post();

get_template_part( 'template-parts/content', get_post_format() );

endwhile;

the_posts_navigation();

else :

get_template_part( 'template-parts/content', 'none' );

endif;
?>
</main><!-- #main -->
</div><!-- #primary -->

<?php
get_sidebar();
get_footer();
?>

まとめ

これで、WordPressでカスタム投稿タイプとカテゴリー一覧ページを作成する方法が完了です。カスタム投稿タイプを利用することで、サイトの内容をより細かく管理・表示することができ、ユーザーにとっても分かりやすいサイトを作成することができます。必要に応じてテンプレートをカスタマイズし、魅力的なサイトを構築してください。