2

我使用 WordPress 作为我最喜欢的 cms 软件。使用过不同的 WordPress 特定查询,如WP_Queryget_postsquery_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 及更低版本)没有实现interators,但它提供了一些具有迭代器功能的方法。

例如$query->have_posts()将前进到下一篇文章。但是在使用“循环$query->the_post()”中有效的函数之前,您仍然需要设置 WP 全局变量,因为这些函数依赖于全局变量

于 2013-01-29T15:44:35.020 回答
0

The Loop虽然完全取决于您如何构建页面,但在 WordPress中肯定有内部循环的用例。

假设您有一个包含帖子列表的索引页面,并且您希望在每个帖子下列出“相关帖子”。例如,您可以循环浏览您的帖子,然后使用WP_Querytoforeach浏览具有相同标签的最近帖子。

于 2013-01-29T15:45:08.397 回答