• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/have posts

提供: WordPress Codex 日本語版
移動先: 案内検索

説明

この関数は現在の WordPress クエリにループできる結果があるかどうかをチェックします。ブール型関数で、TRUE または FALSE を返します。

副作用として、have_postsループをスタート・段階的に経由・またはリセットします。have_posts はループの最後に rewind_posts を呼び出して 0 を返します。

使い方

<?php have_posts(); ?>

パラメーター

この関数にはパラメーターは指定できません。

戻り値

(boolean) 
成功時に true、失敗時に false。

以下の例では投稿があるかどうかをチェックし、もしある場合は投稿に対してループ内の操作を実行します。

<?php
if ( have_posts() ) :
	while ( have_posts() ) : the_post();
		// ループ内のコード
	endwhile;
else :
	echo wpautop( '投稿が見つかりませんでした。 );
endif;
?>

この関数をループ内で呼び出すと永久ループが発生してしまいます。例えば以下のコードをご覧ください。

<?php
while ( have_posts() ): the_post();
        // 投稿を表示
        if ( have_posts() ): // 最後の投稿の場合、もう一度ループを始める
                // 最後の投稿ではない場合に実行する内容
        endif;
endwhile;
?>

最初に書かれた「副作用」を発生させることなく現在のループ内にさらに投稿があるかどうかチェックしたいときは、以下の関数を使ってください。

function more_posts() {
  global $wp_query;
  return $wp_query->current_post + 1 < $wp_query->post_count;
}

変更履歴

ソースファイル

have_posts()wp-includes/query.php に含まれています。

関連

記事

コード・ドキュメンテーション

  • クラス: WP_Query - WP_Query クラスの詳細な全容
  • クラス: WP_Comment_Query - コメント関連のクエリのためのクラス
  • クラス: WP_User_Query - ユーザー関連のクエリのためのクラス
  • オブジェクト: $wpdb - $wpdb オブジェクトの使い方全容
  • 関数: set_query_var()
  • 関数: get_query_var()
  • 関数: query_posts() - 追加のカスタムクエリを作成
  • 関数: get_post() - 項目の ID を取得しデータベース内にあるその投稿のレコードを返す
  • 関数: get_posts() - 投稿の配列を返すことに特化した関数
  • 関数: get_pages() - ページの配列を返すことに特化した関数
  • 関数: have posts() - クエリが投稿を返すか否かを判断する条件関数
  • 関数: the_post() - クエリ後に自動的にループを設定する
  • 関数: rewind_posts() - 現状のループをリセットする
  • 関数: setup_postdata() - ループ内で個別の結果を得るためのクエリデータを設定する
  • 関数: wp_reset_postdata() - 直前のクエリを復元する (通常はループ内の別のループの後に用いられる)
  • 関数: wp_reset_query()
  • 関数: is_main_query() - 変更されるクエリがメインのクエリであることを確認する
  • アクションフック: pre_get_posts - WordPressクエリが実行される前に変更する
  • アクションフック: the_post - post クエリの後で post オブジェクトを変更する
  • フィルターフック: found_posts - WP_Query オブジェクトの found_posts 値を変更する


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function_Reference/have_posts最新版との差分