Wordpress
PR

【WordPress】よく使う記事の取得コード

にゃん花子
記事内に商品プロモーションを含む場合があります

WordPressでよく使う、ブログ記事の取得のコードを紹介するにゃん!投稿と、カスタム投稿の記事も取得できるにゃん。

Google広告

出来上がりのイメージ

アイキャッチ画像とタイトルを表示し、各ブログ記事へリンクします。
SP表示では、1列に1記事が表示されるよう、CSSを組んでいます。

記事の取得コード(通常の投稿)

基本の取得コードを紹介します。

1<?php $posts = get_posts('cat=3&posts_per_page=-1'); ?>
2<?php foreach ($posts as $post):setup_postdata($post); ?>
3
4<a class="eyecatch__link" href="<?php the_permalink(); ?>">
5	<?php the_post_thumbnail( 'large' ); ?>
6	<h2><?php the_title(); ?></h2>
7</a>
8
9<?php endforeach; ?>
10<?php wp_reset_postdata(); ?>

コードの説明

1行目、投稿記事の取得

get_posts の引数にcat=3&posts_per_page=-1を設定しています。この指定により、カテゴリーIDが3の投稿記事を全件取得し、$posts 変数に保存しています。
※ posts_per_page  に-1を設定すると全件取得になり、指定した記事件数を取得したい場合は、具体的な数を指定します。

2行目・9行目、繰り返し処理

1行目で$posts にカテゴリ3の記事を全件取得して、入れています。
次に2行目のforeach($posts as $post): をすることで$posts(取得した全件の投稿記事)の内1件の記事を $post  へ渡しています。
そしてsetup_postdata($post)をすることで「今からこの記事を使って、処理を開始するよ」とWordPressに伝えて、実際に3行目以降で表示していきます。

9行目の<?php endforeach; ?>は、2行目から開始したforeach(ループ処理)の終わりを示しています。
9行目のendforeach  まで処理が進むと、再び2行目の<?php foreach($posts as $post): setup_postdata($post); ?> の処理に戻り、2件目の投稿記事を $post  に渡します。
これが全件取得の場合は、全件分終わるまで繰り返されます。

10行目、global変数の$postを元に戻す

(重要)最後に10行目に、 $post  の内容をクリアーにしています。この記載がないと、この後の処理で不具合を起こす可能性があります。

なぜresetが必要なのか?

2行目で使用している $post  変数はグローバル変数といい、Wordpress全体で利用している変数になります。そのため、変数を上書きして利用してしまっている状態のため、処理後はresetして元の状態に戻す必要があります。
今回、$postsを利用しているのですが、こちらもグローバル変数のため、もしどこか不具合が起きるようでれば、$posts部分を任意の$change_postsなどに変更してみてくださいね。
($post  の場合は他の変数名にしてしまうとうまく表示されなくなりますので注意)

4〜7行目、投稿記事の情報を取得

2行名でsetup_postdata($post);された投稿データを、4行目〜7行目で、取得した記事の情報を表示しています。

  • the_permalink() … 投稿のリンク
  • the_title() … 投稿のタイトル
  • the_post_thumbnail( ‘large’ ); … サムネイル(大きさlarge)

記事の取得コード(カスタム投稿タイプ)

1<?php $posts = get_posts('post_type=course-column&&posts_per_page=-1'); ?>
2<?php foreach ($posts as $post):setup_postdata($post); ?>
3
4<a class="eyecatch__link" href="<?php the_permalink(); ?>">
5	<?php the_post_thumbnail( 'large' ); ?>
6	<h2><?php the_title(); ?></h2>
7</a>
8
9<?php endforeach; ?>
10<?php wp_reset_postdata(); ?>

基本的には、先ほど紹介した「通常の投稿」と同じです。1箇所違うのは、1行目のカテゴリーの数を指定していた箇所を「カスタム投稿タイプのスラッグ」指定にしています。
今回であれば「course-column」を指定しています。

Google広告
ABOUT ME
にゃん花子
にゃん花子
「コード書くには苦手」「コピペで動けば、それでOK」な、ノンプログラマー向け | マニアック・ピンポイントなWordpress TIPSが多め|文系から独学でWeb屋さんになった人|インフラ分野のわかるWebディレクター|主にWordpressのサイト立ち上げ、リプレイス、運用をしています|Shopifyもはじめました | アニメ・映画・ドラマを聴きながら、ブツブツ呟きながら、制作するのが好きです | ブログ収益を保護猫活動に使いたいので、頑張る人 | 夜型人間から朝方に切り替え中|小学1年生の壁に負けじと2024年も奮闘します
Google検索
記事URLをコピーしました