0

サブ ナビゲーションを作成するには、すべてのカテゴリのリストとカテゴリの説明を返す必要があります。以下のコードはこれを行いますが、li 要素にクラスを追加して現在のカテゴリを強調表示できるようにしたいと考えています。これどうやってするの?

<ul class="category-list">
        <?php
        $categories = get_categories('exclude=9&title_li=');
        foreach ($categories as $cat) {
                echo "<li><a href=\"".$cat->category_nicename."\">".$cat->cat_name."<p>".$cat->category_description."</p></a></li>";
        }
        ?>
</ul>
4

2 に答える 2

0

$name がハイライトしたい名前の場合、

<?php 
$name = get_query_vars('category');  //applying what the other answer used
?>

<ul class="category-list">
<?php
    $categories = get_categories('exclude=9&title_li=');
    foreach ($categories as $cat) {
        if($cat->cat_name == $name) {  //this might have to be $cat->category_nicename
            echo "<li class=\"highlighted\">";
        } else {
            echo "<li>";
        }
        echo "<a href=\"".$cat->category_nicename."\">".$cat->cat_name <p>".$cat->category_description."</p></a></li>";
    }
    ?>
</ul>
于 2013-10-21T17:51:43.940 に答える
0

ワードプレスでは、同じメニューを登録してから、すべてのカテゴリとサブカテゴリをリストに追加できます。

http://codex.wordpress.org/Function_Reference/register_nav_menus

そうすれば、現在のすべてのクラスとその他のナビゲーションがデフォルトで利用可能になります。

あまりフォローしたくない場合は、URLからクエリされたカテゴリを使用して、同じものをチェックして強調表示できます。

   $current_cat = get_query_vars('category'); //please confirm if its category or cat

次に、ループで確認します

   foreach ($categories as $cat) { 
       $class = ( $cat->slug == $current_cat ) ? 'current-item' : ''; ?>
       <li class="<?php echo $class; ?>" > 
         <a href="<?php get_category_link( $cat->term_id ); ?>">
            <?php echo $cat->name; ?>
            <p>".$cat->description."</p>
         </a>
       </li><?php
   }
于 2013-10-21T18:53:03.607 に答える