【发布时间】:2013-06-20 20:04:41
【问题描述】:
我想使用 php 循环遍历产品类别并将它们存储到一个数组中,该数组将被分配为每个产品的类名。由于某种原因,我的代码无法正常工作,并且没有 PHP 错误。也许这是一个 wordpress 问题:
$classes = array();
$terms = get_the_terms($post->ID, 'product_cat');
foreach ($terms as $term) {
$classes[] = $term->slug;
}
<li <?php post_class( $classes ); ?>>
本质上,我正在尝试将类别作为类名分配给它们各自的产品。这不会引发错误,但不会加载任何内容。有人在这里看到任何问题吗?
【问题讨论】:
-
你试过打印出数组 $terms 吗?
-
如果你在循环外使用
post_class()函数要小心,你必须提供一个post ID作为第二个参数:http://codex.wordpress.org/Function_Reference/post_class#Display_Posts_Outside_of_the_Loop。 -
我确实打印出 $terms 并得到一个像这样的数组: Array ( [19] => stdClass Object ( [term_id] => 19 [name] => Pendant [slug] => pendant [ term_group] => 0 [term_taxonomy_id] => 19 [taxonomy] => product_cat [description] => [parent] => 0 [count] => 1 [object_id] => 44 ) )
-
@Strategio 我没有看到我的代码有问题...这不会改变任何事情: id ); ?>。请解释一下?
-
在 foreach 循环之后有一个额外的“}”,并且在编写 html 之前没有关闭“?>” php。您应该启用 php display_errors。
标签: php wordpress loops foreach