破坏了课堂上的条款

时间:2018-04-11 15:53:23

标签: php wordpress

我在同一时间将条款放入列表和课程中。我可以返回列表没问题,但我需要slug也是类。 这是我的代码

$terms = get_the_terms($post->ID, 'events17groups' );
if ($terms && ! is_wp_error($terms)) :
$tslugs_arr = array();
foreach ($terms as $term) {
    $tslugs_arr[] = $term->slug;
}
endif;
    $listclass = implode(" ", $tslugs_arr);
    $listgroup = "<li class='$listclass'>" . implode("</li><li 
class='$listclass'>", $tslugs_arr) . "</li>";
    echo "<ul class='eventgroup'>$listgroup</ul>";

这会生成以下HTML

<ul class="eventgroup"><li class="exhibitions home">exhibitions</li><li 
class="exhibitions home">home</li></ul>

所以我想要的是

<ul class="eventgroup"><li class="exhibitions">exhibitions</li><li 
class="home">home</li></ul>

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

为什么不使用简单易读foreach

$listgroup = '';
foreach ($tslugs_arr as $item) {
    $listgroup .= '<li class="' . $item . '">' . $item . '</li>';
}
echo "<ul class='eventgroup'>$listgroup</ul>";

答案 1 :(得分:0)

你试过这样的吗?

$terms = get_the_terms($post->ID, 'events17groups' );
if ($terms && ! is_wp_error($terms)) :
$tslugs_arr = array();
foreach ($terms as $term) {
    $tslugs_arr[] = $term->slug;
}
endif;
    $listclass = implode(" ", $tslugs_arr);
    $listgroup = "<li class='".tslugs_arr[0]."'>" . implode("</li><li 
class='".tslugs_arr[1]."'>", $tslugs_arr) . "</li>";
    echo "<ul class='eventgroup'>$listgroup</ul>";

答案 2 :(得分:0)

如果你想做一个花哨的单行,那就试试吧:

<?php
$terms = get_the_terms($post->ID, 'events17groups' );
if ($terms && ! is_wp_error($terms)) :
    $tslugs_arr = array();
    foreach ($terms as $term) {
        $tslugs_arr[] = $term->slug;
    }
endif;

echo "<ul class='eventgroup'>".implode('', array_map( function( $tslug ){ return "<li class='$tslug'>$tslug</li>"; }, $tslugs_arr ) )."</ul>";