WordPressでカスタム投稿を取得してページに表示させる方法

WordPress

WordPressで作成したカスタム投稿タイプへの投稿を取得して、サイトのページに表示させる方法を紹介していきます。

カスタム投稿タイプを作成する方法については、下記のページで紹介していますので、よかったら見てみてください。

トップページなどに最新の投稿を数件表示させる

ここではサブループを利用して、「info」という名前をつけたカスタム投稿タイプの投稿データを3件取得して、それぞれの投稿日とタイトル(投稿ページへのリンクにする)だけを表示させるときの記述例を紹介します。
サブループは「WP_Query」を利用する方法と「get_posts」を利用する方法がありますが、それぞれの記述例を紹介していきます。

「WP_Query」を利用したサブループ

「WP_Query」を利用したサブループでカスタム投稿タイプの投稿データを取得するときの記述例は以下のようになります。

<div>
<?php
  $args = array(
    'post_type' => 'info', //カスタム投稿タイプ名
    'posts_per_page' => 3 //取得する投稿の件数
  );
 
  $my_query = new WP_Query( $args );
?>
 
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
 
<p><?php the_time( get_option( 'date_format' ) ); ?></p>
<p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
 
<?php endwhile; ?>
 
<?php wp_reset_postdata(); ?>
</div>

参考サイト

「WP_Query」について詳しくは、下のページを見てみてください。
WP_Query | Class | WordPress Developer Resources

「get_posts」を利用したサブループ

「get_posts」を利用したサブループでカスタム投稿タイプの投稿データを取得するときの記述例は以下のようになります。

<div>
<?php
  $args = array(
    'post_type' => 'info', //カスタム投稿タイプ名
    'posts_per_page' => 3 //取得する投稿の件数
  );
 
  $my_posts = get_posts($args);
?>
 
<?php foreach ($my_posts as $post) : setup_postdata($post); ?>
 
<p><?php the_time( get_option( 'date_format' ) ); ?></p>
<p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
 
<?php endforeach; ?>
 
<?php wp_reset_postdata(); ?>
</div>

参考サイト

「get_posts」について詳しくは、下のページを見てみてください。
get_posts() | Function | WordPress Developer Resources

カスタム投稿タイプの投稿一覧ページを作成する

投稿一覧ページのテンプレートファイル(.php)を作成

デフォルトの投稿一覧ページは「archive.php」で表示できますが、カスタム投稿タイプの投稿一覧ページは「archive-〇〇.php」で表示することができます。
例えば、「info」という名前のカスタム投稿タイプを作成した後に、このカスタム投稿タイプの投稿一覧ページを表示したい時には「archive-info.php」というテンプレートファイルを作成してテーマフォルダに設置することで表示できます。
元々ある投稿一覧ページからデザインを変更する必要がない場合には「archive.php」をコピーしてファイル名を「archive-info.php」に変えるだけでも大丈夫です。

投稿一覧ページのURL

この「archive-〇〇.php」を使用した場合、追加したカスタム投稿タイプの投稿一覧ページのURLは「サイトURL/〇〇」となります。
例えば、「https://example.com」というサイトに「info」という名前のカスタム投稿タイプを作成し、投稿一覧ページとして「archive-info.php」を作成した場合、カスタム投稿タイプ「info」の投稿一覧ページのURLは、「https://example.com/info」となります。

カスタム投稿タイプの個別投稿ページを作成する

個別投稿ページのテンプレートファイル(.php)を作成

デフォルトの個別投稿ページは「single.php」で表示できますが、カスタム投稿タイプの個別投稿ページは「single-〇〇.php」で表示することができます。
例えば、「info」という名前のカスタム投稿タイプを作成した後に、このカスタム投稿タイプの個別投稿ページを表示したい時には「single-info.php」というテンプレートファイルを作成してテーマフォルダに設置することで表示できます。
元々ある個別投稿ページからデザインを変更する必要がない場合には「single.php」をコピーしてファイル名を「single-info.php」に変えるだけでも大丈夫です。

個別投稿ページのURL

この「single-〇〇.php」を使用した場合、追加したカスタム投稿タイプの個別投稿ページのURLは「サイトURL/〇〇/投稿のスラッグ」となります。
例えば、「https://example.com」というサイトに「info」という名前のカスタム投稿タイプを作成し、個別投稿ページとして「single-info.php」を作成した場合、カスタム投稿タイプ「info」の個別投稿ページのURLは、「https://example.com/info/投稿のスラッグ」となります。

まとめ

以上、WordPressでカスタム投稿を取得してページに表示させる方法について紹介してきました。
参考になりましたら幸いです。

コメントを残す





このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください