我有两个foreach
循环,我正在使用WordPress生成的对象。
在我看来,这些都应该是一样的。但是,他们没有。请注意循环中的$post
和$not_a_post
:
A:
$array_A = array( 'posts_per_page' => 2 );
$get_posts_A = get_posts( $array_A );
foreach ( $get_posts_A as $post ) { //uses $post
the_title();
}
B:
$array_B = array( 'posts_per_page' => 5 );
$get_posts_B = get_posts( $array_B );
foreach ( $get_posts_B as $not_a_post ) { //uses $not_a_post
the_title();
}
唯一的区别在于我使用变量$post
作为条件第一循环。
我一直认为(显然,错误地)第二个条件变量只是一个占位符。所以我可以做$ x,$ y等。
有人可以向我解释为什么这个foreach循环需要变量$post
?
答案 0 :(得分:6)
那是因为the_title()
依赖于来自外部范围的名为$post
的变量,顺便说一下这是一个糟糕的设计理念 - 它应该作为参数传递给函数,例如:
the_title($some_id || $some_resource);
编辑:实际上WP允许您传递帖子ID check the code here。