WordPressでカスタム投稿を取得してページに表示させる方法
WordPressで作成したカスタム投稿タイプへの投稿を取得して、サイトのページに表示させる方法を紹介していきます。
カスタム投稿タイプを作成する方法については、下記のページで紹介していますので、よかったら見てみてください。
WordPressのカスタム投稿タイプを作成する方法
WordPressの「functions.php」にコードを追加してカスタム投稿タイプを作成する方法を紹介します。
トップページなどに最新の投稿を数件表示させる
ここではサブループを利用して、「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でカスタム投稿を取得してページに表示させる方法について紹介してきました。
参考になりましたら幸いです。
コメントを残す