douchenchepan6465 2017-02-13 09:55
浏览 22
已采纳

wordpress类别菜单中的当前类别

I have a little script that display any categories that contain posts and displays them (like a little menu)

<?php 
  $categories = get_categories( array(
      'orderby' => 'name',
      'order'   => 'ASC'
  ) );
  echo '<a class="blog-panel-cat-menu bg-color-1" href="' . get_permalink( get_option( 'page_for_posts' ) ) . '">All</a>';
  foreach( $categories as $category ) {
      if ($category->count > 0){
        $category_link = sprintf( 
            '<a class="blog-panel-cat-menu bg-color-1" href="%1$s" alt="%2$s">%3$s</a>',
            esc_url( get_category_link( $category->term_id ) ),
            esc_attr( sprintf( __( 'View all posts in %s', 'textdomain' ), $category->name ) ),
            esc_html( $category->name )
        );
        echo $category_link;
      }
  } 
?>

When clicking on any link it will redirect to a page that show the posts for that category eg mywebsite/news/category/blog/ or mywebsite/news/category/news/ (mywebsite/news being the blog homepage which displays all categories)

When I'm on mywebsite/news/category/blog/ I want the "blog" link in the menu to have the class blog-cat-focus after the current class in the foreach loop like this <a class="blog-panel-cat-menu bg-color-1 blog-cat-focus" href="%1$s" alt="%2$s">%3$s</a>

  • 写回答

1条回答 默认 最新

  • dongqiao6445 2017-02-13 10:20
    关注

    Try this code. Added two more lines to check current category.

    <?php 
      $categories = get_categories( array(
          'orderby' => 'name',
          'order'   => 'ASC'
      ) );
    $category = get_category( get_query_var( 'cat' ) );
      echo $cat_id = $category->cat_ID;
      echo '<a class="blog-panel-cat-menu bg-color-1" href="' . get_permalink( get_option( 'page_for_posts' ) ) . '">All</a>';
      foreach( $categories as $category ) {
          if ($category->count > 0){
              $cust_class = '';
              if($category->term_id==$cat_id){$cust_class = 'blog-cat-focus';}
            $category_link = sprintf( 
                '<a class="blog-panel-cat-menu bg-color-1 %4$s>" href="%1$s" alt="%2$s">%3$s</a>',
                esc_url( get_category_link( $category->term_id ) ),
                esc_attr( sprintf( __( 'View all posts in %s', 'textdomain' ), $category->name ) ),
                esc_html( $category->name ),
                $cust_class
    
            );
            echo $category_link;
          }
      } 
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧