我想列出一个自定义分类中仅包含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>';
}
?>
答案 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项目。