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:

$class = $base == $title_slug ? 'クラス="アクティブ"': '';
if($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 に答える
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私は声明の中でAlaaが答えたことを適用し、それは私が必要としているものになります.

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 に答える