web-dev-qa-db-ja.com

WP_Queryを使用する - 結果がない場合に何かを表示する方法

私はWP_Queryを使ってイベントを問い合わせ、表示しました。しかし、場合によっては、表示するイベントがないため、何も表示せずにわかりやすいメッセージを表示したいのですが、その方法がわかりません。もしそれがmysqlクエリであればif(mysql_num_rows($ result)== 0)を使うことができると私は知っていますが、それがWP_Queryでうまくいくとは思いません。他にうまくいくものはありますか?

あなたが私に与えることができるあらゆる助けをどうもありがとう。
サラ

4
Sarah

$queryがあなたのWP_Queryオブジェクトだとしましょう。すなわち.

    $query = new WP_Query($some_query_args );

そうすれば、 'the loop'を設定できます。

    $query->get_posts();

次に、実際に返された結果があるかどうかを確認します。

    if ( $query->have_posts() ) :
       //Use a While loop to show the results
    else:
       //No results, let's show a message instead. 
       //This is how WordPress' twentyeleven theme does it, but you can format it how you like:
        ?>

      <article id="post-0" class="post no-results not-found">
          <header class="entry-header"> 
              <h1 class="entry-title"><?php _e( 'Nothing Found', 'twentyeleven' ); ?></h1>
          </header>

          <div class="entry-content">
             <p><?php _e( 'Apologies, but no events were found.', 'twentyeleven' ); ?></p>
         </div>
    </article>
    <?php
    endif;

ロジックを覚えておいてください、HTMLマークアップは外側になければなりませんがphpタグの内側にある必要があります。

免責事項:構文はすべて正しくないかもしれません、私はそれをテストしませんでした。しかし、TwentyElevenのindex.phpを調べて、それらの機能を確認してください。

8
Stephen Harris