2

私はお気に入りのcmsソフトウェアとしてWordPressを使用しています。WP_Query、、などget_postsのさまざまなWordPress固有のクエリを使用したことがありますquery_posts

私の質問はプログラミングの側面についてです。foreachたとえば、特定のWordPressクエリ->ループ内のループを使用する必要がある場合はどうなりますか?別のwpループ内でwpループを使用する必要がない場合もあると思いますが、単純なphpループを使用することをお勧めしますか?

前もって感謝します!

4

4 に答える 4

3

あなたが正しい。既存のループで別のデータベースクエリを実行する必要がない場合があります。この状況では、foreachループを使用できます。

例:

$childrens = query_posts('showposts=10&&post_type=post');
foreach ( $childrens as $children ) {
    // dos tuff here
}

に保存されているデータを表示するには、次$childrenを使用しますprint_r()

print_r( $childrens );

$children->IDオブジェクトプロパティの例です。

お知らせ下さい。

編集:foreachここに関するその他のドキュメント: php-net foreach loops

于 2013-01-29T15:39:19.493 に答える
1

別のループ内でループできます。

<?php while(have_posts()): the_post() ?>

    <h2><?php the_title() ?></h2>
    <?php
        // preserve global post variable
        global $post; $temp = $post;
        $args = array('posts_per_page'=>3);
        $args['tax_query'] = array(
            array(
                'taxonomy' => 'category',
                'terms' => array('featured'),
                'field' => 'slug',
            )
        );
        $new_query = new WP_Query($args);
        while($new_query->have_posts()): $new_query->the_post();
    ?>
    <h3>Featured: <?php the_title() ?></h2>
    <?php endwhile; $post = $temp; wp_reset_query(); ?>

<?php endwhile; ?>

上記のコードは、「注目」カテゴリの最新の3つの投稿を表示します。

于 2013-01-29T15:44:26.747 に答える
1

を使用する必要はありませんが、必要に応じて使用foreachできます。

WordPressの現在のバージョン(3.5以下)はインターレーターを実装していませんが、イテレーターの機能を持ついくつかのメソッドを提供します。

たとえば$query->have_posts()、次の投稿に進みます。ただし、これらの関数はグローバル変数に依存しているため、「ループ$query->the_post()」内で有効な関数を使用する前に、を使用してWPグローバルを設定する必要があります。

于 2013-01-29T15:44:35.020 に答える
0

The Loopページをどのように構成するかは完全にあなた次第ですが、WordPress内の内部ループのユースケースは間違いなくあります。

投稿のリストを含むインデックスページがあり、各投稿の下に「関連する投稿」をリストするとします。たとえば、投稿をループしてからWP_Queryforeach同じタグを持つ最近の投稿をループすることができます。

于 2013-01-29T15:45:08.397 に答える