我使用 WordPress 作为我最喜欢的 cms 软件。使用过不同的 WordPress 特定查询,如WP_Query
、get_posts
、query_posts
等。
我的问题是关于编程方面的。如果我需要foreach
在特定的 WordPress 查询->循环中使用例如循环怎么办?我想,有时不需要在另一个 wp 循环中使用 wp 循环,建议使用简单的 php 循环?
提前致谢!
你是对的。在某些情况下,不需要在现有循环中执行另一个数据库查询。在这种情况下,您可以使用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
您可以在另一个循环中循环:
<?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 个最新帖子。
您不需要使用foreach
,但如果您愿意,可以使用。
当前版本的 WordPress(3.5 及更低版本)没有实现interators,但它提供了一些具有迭代器功能的方法。
例如$query->
have_posts()
将前进到下一篇文章。但是在使用“循环$query->the_post()
”中有效的函数之前,您仍然需要设置 WP 全局变量,因为这些函数依赖于全局变量
The Loop
虽然完全取决于您如何构建页面,但在 WordPress中肯定有内部循环的用例。
假设您有一个包含帖子列表的索引页面,并且您希望在每个帖子下列出“相关帖子”。例如,您可以循环浏览您的帖子,然后使用WP_Query
toforeach
浏览具有相同标签的最近帖子。