这是我当前通过woocommerce显示产品的循环。当我打印r($category\\u array)时;它返回数组,但当我尝试使用函数调用它以便可以对数据执行我想要的操作时,它会生成,并且在循环后不会显示整个屏幕。也许是我的功用错了?woocommerce和wp\\U循环仍然非常新。非常感谢。
<?php
// WP_Query arguments
$args = array(
\'p\' => \'product\',
\'post_type\' => array( \'product\' ),
\'order\' => \'ASC\',
\'post_per_page\' => 20,
);
// The Query
$query = new WP_Query( $args );
// The Loop
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
function filter_categories($categories) {
foreach ($categories as $category) {
echo $category->name;
}
}
?>
<div class="row">
<div class="col-2">
<?php echo the_post_thumbnail(get_the_ID(), \'thumbnail\'); ?>
</div>
<div class="col-7">
<a href="<?= get_permalink(); ?>"><?= the_title()?></a>
<br/>
<?php
$category_array = get_the_terms(get_the_ID(), \'product_cat\');
filter_categories($category_array);
?>
</div>
<div class="col-3 text-right ">Price</div>
</div>
<?php
}
} else {
// no posts found
}
// Restore original Post Data
wp_reset_postdata();
?>
最合适的回答,由SO网友:Tom J Nowell 整理而成
问题在于:
while ( $query->have_posts() ) {
$query->the_post();
function filter_categories($categories) {
foreach ($categories as $category) {
echo $category->name;
}
}
您不应该在循环中声明函数。每次它在
filter_categories
再次声明函数,但只能声明命名函数
once, 所以第二轮就崩溃了,一切都停止了。
如果查看PHP错误日志,应该会看到关于重新声明的错误消息filter_categories
确认这一点。