将自定义字段分类列表分为两列(Wordpress)

时间:2017-12-04 21:29:04

标签: php wordpress advanced-custom-fields

我正在尝试将类别列表分为两列。每个类别都有一个使用ACF创建的自定义字段(“颜色”)。到目前为止,我可以使用以下代码将列表放在一个列中:

<?php
          $args = array( 'hide_empty' => '0');
          $categories = get_categories($args);
          if($categories){
            echo '<div class="col"><ul class="cat-list">';
            foreach($categories as $category) {
              $color = get_field('color', 'category_'.$category->term_id);
              echo '<li style="background-color:'.$color.'">';
              echo '<a href="';
              echo esc_url( get_category_link( $category->term_id ) );
              echo '">';
              echo $category->name;
              echo '</a>';
              echo '</li>';
            } 
            echo '</ul></div>';
          }    
          ?>

现在我正在尝试使用wp_list_categories获取列表(提示:https://wpsquare.com/display-wordpress-categories-two-columns/)。这可以作为两列问题的解决方案,但是使用此方法,我无法从类别自定义字段中检索值。

提前致谢。

1 个答案:

答案 0 :(得分:1)

<?php $args = array( 'hide_empty' => '0'); $categories = get_categories($args); if(!empty($categories)) { $last_category_nr = count($categories) - 1; $last_in_first_column = ceil($last_category_nr / 2); ?> <div class="col"> <ul class="cat-list"> <?php for ($i = 0; $i <= $last_in_first_column; $i++) { $category = $categories[$i]; $color = get_field('color', $category); $link = esc_url( get_category_link( $category->term_id ) ); $name = $category->name; ?> <li style="background-color: <?php echo $color; ?>"> <a href="<?php echo $link; ?>"> <?php echo $name; ?> </a> </li> <?php } ?> </ul> </div> <div class="col"> <ul class="cat-list"> <?php for ($i = $last_in_first_column + 1; $i <= $last_category_nr; $i++) { $category = $categories[$i]; $color = get_field('color', $category); $link = esc_url( get_category_link( $category->term_id ) ); $name = $category->name; ?> <li style="background-color: <?php echo $color; ?>"> <a href="<?php echo $link; ?>"> <?php echo $name; ?> </a> </li> <?php } ?> </ul> </div> } ?> 是一个数组。使用数组可以做的一件好事就是...查看它们中有多少项,并使用简单的for循环迭代它们。

heavy