I want to list all records in one custom taxonomy start with only A or B. Below code is to list all record with all letters.
Here is the code to list all record with one custom taxonomy with all letters in groups.
Example,
<?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 .= "nt" . '<h2 class="stores">' . apply_filters( 'the_title', $letter ) . '</h2>';
$list .= "nt" . '<ul class="stores">';
foreach($stores as $store) {
if (!in_array($store->term_id, $hidden_stores)) {
$list .= "ntt" . '<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 .= "nt" . '</ul>';
if(!$letter_items)
$list = $old_list;
}
endif;
} else {
$list .= "nt" . '<p>' . __('Sorry, but no stores were found.', 'appthemes') .'</p>';
}
?>
You can use
preg_match
function:One way to go about it is to use a custom SQL query with Wildcard search and maybe look something like: