[WordPress] get_option(‘posts_per_page’)で「表示する最大投稿数」を取得する

固定ページに「投稿」のループを表示させたい時などには、WP_Queryを使うと便利です。

コードは、次のようになります。

<?php 
$args = array(
    'post_type' => 'post', //投稿を表示
    'posts_per_page' => 10, //表示する件数
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
?>
<ul>
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
        <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
    <?php endwhile; ?>
</ul>
<?php endif; ?>

このコードですが、posts_per_pageの箇所で、表示する記事の件数を指定しています。

しかし、これでは表示件数を変更するたびにコードを直す必要があります。

 

WordPressの管理画面には表示する件数を設定することができます。

options-reading.php

 

せっかくなので、この設定が先ほどのコードに反映するようにしましょう。

ここの設定された数値は、get_option(‘posts_per_page’) で取得することが可能です。

ですので、先ほどのコードは次のように記述することで、管理画面で設定した数値が連動します。

<?php 
$args = array(
    'post_type' => 'post', //投稿を表示
    'posts_per_page' => get_option('posts_per_page'), //表示する件数
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
?>
<ul>
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
        <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
    <?php endwhile; ?>
</ul>
<?php endif; ?>

 

 

このget_option()で取得できるデータは引数によって変えることが可能です。

データの種類はかなり多いのですが、公式のCodexに記載されています。

オプション設定リファレンス – WordPress Codex 日本語版

 

 

この記事を書いた人:

ナカシマ

北区赤羽在住のWEBデザイナー兼エンジニア。インターネット、WordPress、本・漫画、音楽が大好き。妻と猫と暮らすアップル信者。

BLOG: 着ぐるみ追い剥ぎペンギン