WordPressに新着記事の一覧を表示する方法。get_postsで簡単!
  • 記事公開:2019/04/22
  • 最終更新:2019/05/04

WordPressに新着記事の一覧を表示する方法。get_postsで簡単!

WordPressに新着記事の一覧を表示する方法をご紹介しています。関数の【get_posts】を使う簡単な方法です。新着情報の表示にプラグインは必要ありません。【get_posts】を使った新着情報の表示をマスターしてください。

この記事は約 21 分で読めます。

WordPressのカスタマイズはお任せください。

WordPressのカスタマイズを格安で代行いたします。ご希望のカスタマイズがあればご相談ください。

新着情報の表示は【get_posts】で間違いなし!

WordPressでサイトを制作していると、投稿などの新着情報を表示させる機会がすごく多いです。
いちいち調べるのは大変なので、よく使うコードをまとめてみました。

WordPressの新着情報を表示する場合、【get_posts】を使います。
query_postsを使う方法もありますが、個人的にお奨めはしません。

初めて新着情報の表示に挑戦される方は、【get_posts】一択で良いかと思います。
その他の方法は、【get_posts】の使い方を身につけた後で、興味があれば調べてみましょう。

今回は、【get_posts】を使って、新着情報を取得する方法をご紹介していきます。

新着情報を取得する基本コード

最初に基本となるコードをご紹介します。
新着情報を表示させたい場所に、以下のコードをコピペしてください。

<?php
$information= get_posts( array(
//ここで取得条件を指定する
));
if( $information):
?>
<ul>
<?php
foreach( $information as $post ):
setup_postdata( $post );
?>
<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>
<?php
endforeach;
wp_reset_postdata();
?>
</ul>
<?php else: ?>
<p>表示できる情報はありません。</p>
<?php endif; ?>

上記のコードは、新着情報を以下の形式で出力します。

<li>xxxx年xx月xx日 - 記事タイトル</li>
<li>xxxx年xx月xx日 - 記事タイトル</li>
<li>xxxx年xx月xx日 - 記事タイトル</li>
<li>xxxx年xx月xx日 - 記事タイトル</li>
<li>xxxx年xx月xx日 - 記事タイトル</li>

新着情報がひとつも無い場合は【表示できる情報はありません。】と表示されます。

表示させる文章は自由に変更できます。

上記コードの下部にある【表示できる情報はありません。】部分を投稿がないときに表示させたい文章を置き換えてください。HTMLやPHPを記述することも可能です。

上記のコードが、新着情報を表示させる基本のコードとなります。

様々な条件で新着情報を取得してみよう

先ほどの基本となるコードの【//ここで取得条件を指定する】部分を編集することで、さまざまな条件で新着情報の一覧を表示できるようになります。

様々な条件を加えてで新着情報を表示する方法をご紹介していきます。

最初に以下でご紹介する条件をまとめておきます。
解説がなくても分かる方が、こちらのまとめをご覧ください。

条件 コード
件数指定 ‘posts_per_page’ => 取得する件数
カテゴリ指定 単体:’category’ => ‘カテゴリID’
複数:’category’ => ‘カテゴリID, カテゴリID’
カテゴリ除外 単体:’category’ => ‘-カテゴリID’
複数:’category’ => ‘-カテゴリID, -カテゴリID’
タグ指定 単体:’tag’ => ‘タグスラッグ’
複数:’tag’ => ‘タグスラッグ,タグスラッグ’
タグ除外 単体:’tag__not_in’ => タグID
複数:’tag__not_in’ => array( タグID, タグID)
特定の投稿を除外 単体:’exclude’ => ‘投稿ID’
複数:’exclude’ => ‘投稿ID, 投稿ID’
カスタム投稿を指定 単体:’post_type’ => ‘カスタム投稿名’
複数:’post_type’ => array(‘カスタム投稿名’, ‘カスタム投稿名’)

各条件を個別に解説していきます。

取得件数を指定して新着情報を取得する

新着情報に表示する記事の件数を指定する方法をご紹介します。

基本となるコードの【//ここで取得条件を指定する】部分に、以下のコードを記述しましょう。

'posts_per_page' => 取得する件数

【取得する件数】の部分を表示させたい記事数に置き換えます。
仮に10件表示させたいのであれば【10】と記述します。

基本となるコードに上記のコードを追記すると以下のような記述になります。

<?php
$information= get_posts( array(
'posts_per_page' => 取得する件数
));
if( $information):
?>
<ul>
<?php
foreach( $information as $post ):
setup_postdata( $post );
?>
<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>
<?php
endforeach;
wp_reset_postdata();
?>
</ul>
<?php else: ?>
<p>表示できる情報はありません。</p>
<?php endif; ?>

どんどん行きましょう。

特定カテゴリーの新着情報を取得する

特定のカテゴリーに分類された投稿だけを新着情報に表示する方法をご紹介します。

基本となるコードの【//ここで取得条件を指定する】部分に、以下のコードを記述しましょう。

'category' => 'カテゴリID'

複数のカテゴリを指定したい場合は、以下のように記述します。

'category' => 'カテゴリID, カテゴリID'

【カテゴリID,】を追加すればいくつでもカテゴリを指定できます。
最後のカテゴリIDには【,】は必要ありません。

【カテゴリID】の部分は、指定するカテゴリのスラッグに置き換えてください。
カテゴリIDの調べ方は、WordPressの投稿IDやカテゴリーIDなど各種IDの調べ方を参照。

基本となるコードに上記のコードを追記すると以下のような記述になります。

<?php
$information= get_posts( array(
'category' => 'カテゴリID'
));
if( $information):
?>
<ul>
<?php
foreach( $information as $post ):
setup_postdata( $post );
?>
<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>
<?php
endforeach;
wp_reset_postdata();
?>
</ul>
<?php else: ?>
<p>表示できる情報はありません。</p>
<?php endif; ?>

どんどん行きます。

特定カテゴリーを除いて新着情報を取得する

特定のカテゴリーに分類された投稿を除いて新着情報を表示する方法をご紹介します。

基本となるコードの【//ここで取得条件を指定する】部分に、以下のコードを記述しましょう。

'category' => '-カテゴリID'

複数のカテゴリを指定したい場合は、以下のように記述します。

'category' => '-カテゴリID, -カテゴリID'

先ほどの特定のカテゴリに分類された投稿のみを新着情報に表示させる方法とコードは同じです。どこが違うかといえば、【カテゴリID】の前に【-】が着いている点です。

【-】をつけることで、そのカテゴリの投稿を除外することができます。

【-カテゴリID,】を追加すればいくつでも除外するカテゴリを指定できます。
最後のカテゴリIDには【,】は必要ありません。

【カテゴリID】の部分は、指定するカテゴリのスラッグに置き換えてください。
カテゴリIDの調べ方は、WordPressの投稿IDやカテゴリーIDなど各種IDの調べ方を参照。

基本となるコードに上記のコードを追記すると以下のような記述になります。

<?php
$information= get_posts( array(
'category' => '-カテゴリID'
));
if( $information):
?>
<ul>
<?php
foreach( $information as $post ):
setup_postdata( $post );
?>
<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>
<?php
endforeach;
wp_reset_postdata();
?>
</ul>
<?php else: ?>
<p>表示できる情報はありません。</p>
<?php endif; ?>

上記は、除外するカテゴリをひとつだけ指定した場合のコードです。

どんどん行きます。

特定タグの新着情報を取得する

特定のタグが設定された投稿だけを新着情報に表示する方法をご紹介します。

基本となるコードの【//ここで取得条件を指定する】部分に、以下のコードを記述しましょう。

'tag' => 'タグスラッグ'

複数のタグを指定したい場合は、以下のように記述します。

'tag' => 'タグスラッグ,タグスラッグ'

【タグスラッグ,】を追加すればいくつでもタグを指定できます。
最後のタグスラッグには【,】は必要ありません。

【タグスラッグ】の部分は、指定するタグのスラッグに置き換えてください。

基本となるコードに上記のコードを追記すると以下のような記述になります

<?php
$information= get_posts( array(
'tag' => 'タグスラッグ'
));
if( $information):
?>
<ul>
<?php
foreach( $information as $post ):
setup_postdata( $post );
?>
<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>
<?php
endforeach;
wp_reset_postdata();
?>
</ul>
<?php else: ?>
<p>表示できる情報はありません。</p>
<?php endif; ?>

上記はひとつのタグを指定した場合のコードです。

続きます。

特定タグを除いて新着情報を取得する

特定のタグが設定された投稿を除いて新着情報に表示する方法をご紹介します。

基本となるコードの【//ここで取得条件を指定する】部分に、以下のコードを記述しましょう。

'tag__not_in' => 'タグID'

複数のタグを指定したい場合は、以下のように記述します。

'tag__not_in' => array( 'タグID', 'タグID')

【タグID,】を追加すればいくつでも除外するタグを指定できます。
最後のタグIDには【,】は必要ありません。

【タグID】の部分は、指定するタグのスラッグに置き換えてください。
タグIDの調べ方は、WordPressの投稿IDやカテゴリーIDなど各種IDの調べ方を参照。

基本となるコードに上記のコードを追記すると以下のような記述になります

<?php
$information= get_posts( array(
'tag__not_in' => 'タグID'
));
if( $information):
?>
<ul>
<?php
foreach( $information as $post ):
setup_postdata( $post );
?>
<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>
<?php
endforeach;
wp_reset_postdata();
?>
</ul>
<?php else: ?>
<p>表示できる情報はありません。</p>
<?php endif; ?>

上記はひとつのタグを指定した場合のコードです。

続きます。

特定の記事を除いて新着情報を取得する

特定の記事を新着情報から除外する方法をご紹介します。
基本となるコードの【//ここで取得条件を指定する】部分に、以下のコードを記述しましょう。

'exclude' => '投稿ID'

複数の投稿を除外したい場合は、以下のように記述します。

'exclude' => '投稿ID, 投稿ID'

【投稿ID,】を追加すればいくつでも投稿を除外できます。
最後の投稿IDには【,】は必要ありません。

【投稿ID】の部分は、指定するタグのスラッグに置き換えてください。
投稿IDの調べ方は、WordPressの投稿IDやカテゴリーIDなど各種IDの調べ方を参照。

基本となるコードに上記のコードを追記すると以下のような記述になります。

<?php
$information= get_posts( array(
'exclude' => '投稿ID'
));
if( $information):
?>
<ul>
<?php
foreach( $information as $post ):
setup_postdata( $post );
?>
<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>
<?php
endforeach;
wp_reset_postdata();
?>
</ul>
<?php else: ?>
<p>表示できる情報はありません。</p>
<?php endif; ?>

上記は記事をひとつ除外する場合の記述です。

続きます。

カスタム投稿の新着情報を取得する

特定のカスタム投稿の投稿だけを新着情報に表示する方法をご紹介します。
基本となるコードの【//ここで取得条件を指定する】部分に、以下のコードを記述しましょう。

'post_type' => 'カスタム投稿名'

複数のカスタム投稿名を指定したい場合は、以下のように記述します。

'post_type' => array('カスタム投稿名', 'カスタム投稿名')

【’カスタム投稿名’,】を追加すればいくつでも投稿を除外できます。
最後のカスタム投稿名には【,】は必要ありません。

【カスタム投稿名】の部分は、指定するタグのスラッグに置き換えてください。
カスタム投稿名の調べ方は、カスタム投稿名とカスタムタクソノミー名の調べ方を参照。

基本となるコードに上記のコードを追記すると以下のような記述になります

<?php
$information= get_posts( array(
'post_type' => 'カスタム投稿名'
));
if( $information):
?>
<ul>
<?php
foreach( $information as $post ):
setup_postdata( $post );
?>
<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>
<?php
endforeach;
wp_reset_postdata();
?>
</ul>
<?php else: ?>
<p>表示できる情報はありません。</p>
<?php endif; ?>

上記は、カスタム投稿をひとつ指定する場合のコードです。

続きます。

特定のカスタムフィールドに指定した値が入っている投稿だけの新着情報を取得する

'meta_query' => array( array(
'key' => 'カスタムフィールド名',
'value' => '指定する値'
)),

【カスタムフィールド名】の部分は、指定するカスタムフィールド名に置き換えてください。【指定する値】の部分は、カスタムフィールドに入っている値に置き換えてください。

例えば、【おすすめ】というカスタムフィールドに【最高】という値が入っている投稿のみを新着情報に表示させたい場合は、以下のような記述になります。

'meta_query' => array( array(
'key' => 'おすすめ',
'value' => '最高'
)),

基本となるコードに上記のコードを追記すると以下のような記述になります

<?php
$information= get_posts( array(
'meta_query' => array( array(
'key' => 'カスタムフィールド名',
'value' => '指定する値'
)),

));
if( $information):
?>
<ul>
<?php
foreach( $information as $post ):
setup_postdata( $post );
?>
<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>
<?php
endforeach;
wp_reset_postdata();
?>
</ul>
<?php else: ?>
<p>表示できる情報はありません。</p>
<?php endif; ?>

以上です。

条件を組み合わせて新着情報を表示してみる

これまでにご紹介した条件を組み合わせたコードをいくつかご紹介します。
条件を組み合わせるときは、最後の条件以外、行の最後に【,】をつけます。

カテゴリAかカテゴリBに分類されている投稿を10件表示する

<?php
$information= get_posts( array(
'category' => 'カテゴリAのID, カテゴリBのID',
'posts_per_page' => 10

));
if( $information):
?>
<ul>
<?php
foreach( $information as $post ):
setup_postdata( $post );
?>
<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>

</ul>
<?php else: ?>
<p>表示できる情報はありません。</p>
<?php endif; ?>

カテゴリAかカテゴリBに分類されている+タグCかタグDが設定されている投稿を10件表示する

<?php
$information= get_posts( array(
'category' => 'カテゴリAのID, カテゴリBのID',
'tag' => 'タグCのスラッグ,タグDのスラッグ',
'posts_per_page' => 10

));
if( $information):
?>
<ul>
<?php
foreach( $information as $post ):
setup_postdata( $post );
?>
<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>
<?php
endforeach;
wp_reset_postdata();
?>
</ul>
<?php else: ?>
<p>表示できる情報はありません。</p>
<?php endif; ?>

カテゴリAに分類されている+タグBが設定されている+投稿Aを除外した投稿を10件表示する

<?php
$information= get_posts( array(
'category' => 'カテゴリAのID',
'tag' => 'タグBのスラッグ',
'exclude' => '投稿AのID',
'posts_per_page' => 10

));
if( $information):
?>
<ul>
<?php
foreach( $information as $post ):
setup_postdata( $post );
?>
<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>
<?php
endforeach;
wp_reset_postdata();
?>
</ul>
<?php else: ?>
<p>表示できる情報はありません。</p>
<?php endif; ?>

条件を組み合わせることで、好みの新着情報を表示することができます。
いろいろと試してみてください。

新着情報に表示させる内容を設定してみよう

最初にご紹介した基本となるコードは、投稿日と記事タイトルだけを表示しました。
ここでは、投稿日や記事タイトル以外の情報を表示させる方法をご紹介します。

表示内容は基本コードの以下の部分です。

<li>
<?php the_time('Y年n月j日'); ?> - <a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a>
</li>

ひとつの投稿はliタグに囲まれて出力されます。
表示させたい内容は、liタグの間に記述します。

ここにいろいろな内容を表示してみましょう。

新着情報にアイキャッチを表示する

アイキャッチを表示させる場合は、以下のコードを記述します。

<?php if ( has_post_thumbnail() ): ?>
<?php echo the_post_thumbnail(); ?>
<?php else: ?>
<img src="ここに代替画像のURL">
<?php endif; ?>

赤文字部分【ここに代替画像のURL】は、任意の画像URLに置き換えてください。
アイキャッチ設定されていないときに指定した画像が表示されます。

新着情報にカテゴリーを表示する

カテゴリーを表示させる場合は、以下のコードを記述します。

<?php the_category(', '); ?>

上記のコードでは、以下のような形式でカテゴリが出力されます。

カテゴリ, カテゴリ・・・

カテゴリが複数設定されている場合、【,】区切りとなります。
カテゴリページへのリンクつきです。

新着情報にタグを表示する

タグを表示させる場合は、以下のコードを記述します。

<?php the_tags('', ', '); ?>

上記のコードでは、以下のような形式でタグが出力されます。

タグ, タグ・・・

タグが複数設定されている場合、【,】区切りとなります。
タグページへのリンクつきです。

新着情報に抜粋を表示する

抜粋を表示させる場合は、以下のコードを記述します。

<?php the_excerpt(); ?>

上記のコードの場合、改行がそのまま反映された形式で表示されます。
改行が不要な場合は、以下のコードを利用しましょう。

<?php echo get_the_excerpt(); ?>

抜粋に関しましては、以下のコンテンツも合わせて確認してください。
WordPressの抜粋で知っておくべき基本と3つのカスタマイズ

今回ご紹介した以外にも、いろいろな内容を表示することができます。
いろいろと調べてみてください。

分からないことがあれば、お問い合わせください。
お力になれるかもしれません。

まとめ

WordPressに新着記事の一覧を表示する方法をご紹介しました。

WordPressの関数【get_posts】を使えば、簡単に新着情報を表示できます。
表示内容もいろいろとカスタマイズできるので大変便利ですね。

今回のコンテンツが、あなたの参考になれば幸いです。

著者:takaya kondo

岡山在住のWebディレクターです。Wordpressを使ったWEBサイト制作を中心に10年間ほど活動させていただいています。

Wordpress関連の記事でお役に立てれば幸いです。

Wordpressサイトのカスタマイズで
お困りではありませんか?

あなたのWordpressサイトを、ご希望に沿ってカスタマイズいたします。
次に該当する方は、お気軽にご相談下さい。

  • Wordpressサイトをカスタマイズしたいが、やり方が分からないで困っている。カスタマイズの知識が豊富な人に任せたい。
  • Wordpressサイトをカスタマイズしたいが、自分でカスタマイズする暇がない。カスタマイズが得意な人に丸投げしたい。
  • Wordpressサイトをカスタマイズしてみたが、上手くカスタマイズできなかった。カスタマイズ経験が豊富な人に任せたい。
  • Wordpressサイトをカスタマイズしてみたら、バグが発生して困っている。正常に動作するように正しくカスタマイズしてほしい。

一つでも該当する方は、以下のリンクからチェックしてみてください。

詳細を確認する

【関連記事】あなたが興味のありそうな関連記事をご紹介します。

  • 2019/05/04

    WordPressでレスポンシブデザインを作成するときに役立つコンテンツ12選

    WordPressでレスポンシブデザインを作成するときに役立つコンテンツを12個まとめてみました。レスポンシブデザインでサイトを構築する方は、一通り確認する事をお勧めいたします。参考にしてください。 記事を読む

  • 2019/05/04

    【WordPress】アイキャッチを設定する部分に説明文を表示する方法

    WordPressを始めて利用する方には、アイキャッチと言われてもピンと来ない方が多くいらっしゃいます。そこで、アイキャッチを設定する部分に簡単な説明文を掲載する方法をご紹介します。 記事を読む

  • 2019/05/05

    WordPressの記事に閲覧制限のパスワードを設定する方法

    WoredPressには記事にパスワードを設定して閲覧制限をかける機能が標準で装備されています。記事単位でパスワードを設定できますので、特定の記事だけパスワードを設定するなど色々な使い方が考えられます。このページでは、記事にパスワードを設定する方法を解説します。 記事を読む

  • 2019/05/05

    コンタクトフォーム7に確認用チェックボックスを追加するだけで得られる2つの効果!!

    コンタクトフォーム7に確認用チェックボックスを追加するだけで得られる2つの効果をご紹介しています。確認用チェックボックスの必要性に関して真剣に考えたことがない方は読んでみてください。 記事を読む

  • 2019/05/22

    【WordPress】コピーライトの年号を自動更新させる方法

    作成したサイトのフッターにコピーライトを記述する機会は多いと思います。WordPressなら、簡単なカスタマイズでコピーライトの年号を自動更新することができるのです。今回はそんなカスタマイズをご紹介します。 記事を読む

コメントを残す

(必須)

CAPTCHA