列出一个自定义分类的所有记录,以一个字母开头,即A.

时间:2014-01-12 07:41:37

标签: wordpress-theming custom-taxonomy

我想列出一个自定义分类中仅包含A或B的所有记录。下面的代码是列出所有字母的所有记录。

以下是列出所有记录的代码,其中包含一个包含所有字母的自定义分类。例如,

A

  

Aajkacatch(0)
  Aajkiitem(0)
  Aamzie(0)
  Aaneri(0)
  Aaramshop(0)
  Abaaya(0)

  

B.LAB(0)
  婴儿共和国(0)
  Babyoye(45)
  Bank-Bazaar(1)

    <?php 
        // Template Name: Store Template


        // get all the stores
        $stores = get_terms(APP_TAX_STORE, array('hide_empty' => 0, 'child_of' => 0, 'pad_counts' => 0, 'app_pad_counts' => 1));
        // get ids of all hidden stores 
        $hidden_stores = clpr_hidden_stores();
        $list = '';
        $groups = array();


        if ($stores && is_array($stores) ) {

    // unset child stores
    foreach($stores as $key => $value)
    if($value->parent != 0)
          unset($stores[$key]);

    foreach($stores as $store)
        $groups[mb_strtoupper(mb_substr($store->name, 0, 1))][] = $store;

    if (!empty($groups)) :

        foreach($groups as $letter => $stores) {
      $old_list = $list;
      $letter_items = false;
            $list .= "\n\t" . '<h2 class="stores">' . apply_filters( 'the_title', $letter ) . '</h2>';
            $list .= "\n\t" . '<ul class="stores">';

            foreach($stores as $store) {
                if (!in_array($store->term_id, $hidden_stores)) {
                    $list .= "\n\t\t" . '<li><a href="' . get_term_link($store, APP_TAX_STORE) . '">' . apply_filters('the_title', $store->name). '</a> (' . intval($store->count) . ')</li>';
          $letter_items = true;
        }
            }   

            $list .= "\n\t" . '</ul>';

      if(!$letter_items)
        $list = $old_list;
        }

    endif;

        } else {

    $list .= "\n\t" . '<p>' . __('Sorry, but no stores were found.', 'appthemes') .'</p>';

        }
        ?>

1 个答案:

答案 0 :(得分:0)

虽然它不是最有效的方式,但您可以轻松检查商店名称的第一个字母。

变化:

if (!in_array($store->term_id, $hidden_stores)) {

为:

if (!in_array($store->term_id, $hidden_stores)  ) {
  $first_letter = substr( $store->name, 0, 1 );
  if ( $first_letter == 'A' || && $first_letter == 'B' )

这样可以确保您只列出A和B项目。