将类添加到wp_list_categories

时间:2016-08-14 17:25:42

标签: wordpress wp-list-categories

我正在显示所有类别的自定义分类:

<?php
    $taxonomy     = 'question';
    $orderby      = 'name';
    $show_count   = false;
    $pad_counts   = false;
    $hierarchical = true;
    $title        = '';

    $args = array(
        'taxonomy'     => $taxonomy,
        'orderby'      => $orderby,
        'show_count'   => $show_count,
        'pad_counts'   => $pad_counts,
        'hierarchical' => $hierarchical,
        'title_li'     => $title
    );
    ?>

    <section class="cd-faq">
        <ul class="cd-faq-categories">
            <?php wp_list_categories( $args ); ?>
        </ul> <!-- cd-faq-categories -->

    </section>

我想要做的是为每个列表项提供不同的类。像这样:

<ul class="cd-faq-categories">
        <li><a class="selected" href="#basics">Basics</a></li>
        <li><a href="#mobile">Mobile</a></li>
        <li><a href="#account">Account</a></li>
        <li><a href="#payments">Payments</a></li>
        <li><a href="#privacy">Privacy</a></li>
        <li><a href="#delivery">Delivery</a></li>
    </ul> <!-- cd-faq-categories -->

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您有两种可能的解决方案 - 通过 wp_list_categories 过滤器解析输出代码,该过滤器可以完全访问由 wp_list_categories 函数输出的最终代码。但在这种情况下,您还会影响 wp_list_categories 功能的其他调用。

其他解决方案是基于 wp_list_categories 代码创建自己的函数,但是修改为根据类别slug添加CSS clases。

您可以找到 wp_list_categories 函数here的完整源代码。

答案 1 :(得分:0)

<ul class="our__list">
  <?php 
    $categories = get_categories( [
      'taxonomy'     => 'category',
      'type'         => 'post',
      'child_of'     => 0,
      'parent'       => '',
      'orderby'      => 'name',
      'order'        => 'ASC',
      'hide_empty'   => 1,
      'hierarchical' => 1,
      'exclude'      => '',
      'include'      => '',
      'number'       => 0,
      'pad_counts'   => false,
    ] );

    if( $categories ) {
      foreach( $categories as $cat ) {

    ?>
      <li class="our__list-class">
        <a 
          href="<?php echo get_category_link($cat->term_id); ?>"
         >
          <?php echo $cat->name; ?>
        </a>
      </li>
  <?php
      }
    }
  ?>
</ul>