0

我有这段代码列出了我所有的类别(大约 10 个)。但是我遇到了一个关于 class="active" 的问题。在我的代码下面,它使我的所有链接都处于活动状态。我怎么能做/指定该链接必须是类为活动的链接?

我知道我有点接近,但我真的很困惑我该怎么做。我再次希望有人可以纠正/借给我一些帮助。

$terms = get_terms('portfolio_category');
$url = get_bloginfo('url');
$base = basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']);
$title_slug =  basename(get_permalink()) ;      

foreach ( $terms as $term) {
    $class = 'class ="active"';
    if($base ==  $title_slug){
    ?>

    <a <?php echo $class; } ?> href="<?php echo $url; ?>/portfolio/<?php echo $term->slug; ?>"> <?php  echo $term->name.'<br />'; ?> </a> 

<?php } ?>  
4

4 回答 4

0

在我的情况下,这对我有用。我应用了阿拉在if声明中回答的内容,它符合我的需要。

foreach ( $terms as $term) {
$class = ($base ==  $term->slug) ? 'class ="active"' : '';
?>
<a <?php  echo $class;  ?> href="<?php echo $url; ?>/portfolio/<?php echo $term->slug; ?>"> <?php  echo $term->name.'<br />' ?> </a> 
<?php } ?>
于 2013-11-15T08:30:29.043 回答
0

我认为你应该尝试这样的事情

foreach ( $terms as $term) {
    $class = $base ==  $title_slug ? 'class ="active"' : '';
?>
<a <?php echo $class; ?> href="<?php echo $url . '/portfolio/' . $term->slug; ?>"><?php  echo $term->name; ?></a><br />
<?php } ?>

另外最好<?php ?>用短标签版本替换<?= ?>

于 2013-11-15T07:57:08.873 回答
0

尝试更改if里面的语句foreach

$class = $base == $title_slug ?'类=“活动”':'';
如果($base == $term->slug){
…………
于 2013-11-15T07:57:58.253 回答
0

更改您的代码块:-

foreach ( $terms as $term) {
    $class = ($base ==  $title_slug) ? 'class ="active"' : '';
    ?>

    <a <?php echo $class; ?> href="<?php echo $url; ?>/portfolio/<?php echo $term->slug; ?>"> <?php  echo $term->name.'<br />'; ?> </a> 

<?php } ?>  
于 2013-11-15T07:58:04.170 回答