Woocommerce字母产品列表

时间:2014-02-13 13:09:00

标签: php wordpress woocommerce

我想通过ABC ...列表列出产品的字母表 像

这样的东西

A | B | C | D .... Z

所有链接到产品列表的第一个字母排序。

我希望它放在排序下拉菜单所在的列表上方(woocommerce的顶部)。

是否可能以某种方式编码,或者是否有插件?

1 个答案:

答案 0 :(得分:2)

我把它放在orderby.php的末尾:

<div id="alphabet">
<?php
$args = array(
   'post_type' => 'product',
   'posts_per_page' => -1
);
$query = new WP_Query($args);

$by_letter = array();
while( $query->have_posts() ) { $query->the_post();
  global $post;
  $letter = substr($post->post_name, 0, 1);
  if ( ! isset($by_letter[$letter]) ) $by_letter[$letter] = array();
  $by_letter[$letter][] = $post;
}
wp_reset_postdata();

?>

<?php
if ( ! empty( $by_letter ) ) {

  ksort($by_letter); // order the array

  // fill the array with letters have no posts
  $by_letter = fill_by_letter_array( $by_letter );

  display_letters_anchors( array_keys( $by_letter ) );

  foreach( $by_letter as $letter => $posts ) {
  ?>
    <div id="Productlist_<?php echo strtoupper($letter); ?>" class="Productlist_<?php echo strtoupper($letter); ?>_object productlists">
    <?php
    if ( ! empty($posts) ) {
      foreach ( $posts as $post ) {
        setup_postdata($post);
        // just an example of post output
        echo '<p><a href="' . get_permalink() . '">' . get_the_title() . '</a></p>';
      }
    } else {
       echo '<p>' . __('No products.') . '</p>';
    }
    ?>
    </div>
  <?php
  }
  wp_reset_postdata();
}
?>

</div>

有点css,它很棒!