wordpress カスタムフィールドに入力した値で表示件数を変更する

2013年6月22日

カスタムフィールドに入力した値で表示件数を変更する方法のメモ。

  • 以下は「works」というカスタム投稿タイプを作成した場合の例。
  • 「works」の最新の投稿を表示する固定ページ(スラッグ:recent_works)を作成(page-recent_works.php)
  • 上記固定ページに「display_count」というカスタムフィールドを作成。
  • カスタムフィールド「display_count」に入力された値で表示する件数を変更する。

以下をテンプレート「page-recent_works.php」に記述する。

<?php 
$display_count = intval(get_post_meta($post->ID, 'display_count', true)) ? intval(get_post_meta($post->ID, 'display_count', true)) : 4;
$my_query = new WP_Query(array(
  'posts_per_page' => $display_count,
  'post_type' => 'works',
  )
); ?>
  • get_post_meta($post->ID, ‘display_count’, true) で入力された値を取得。
  • intval($var) で整数としての値を取得。(成功時は $var の整数値、失敗時は 0を返す)
  • 値が設定されてなければデフォルト値として「4」を指定。
  • WP_Query の’posts_per_page’ に取得した値を設定。