Может вам подойдёт другой способ. Запрашиваем нужные посты и уже у них проверяем первая буква "а" или нет.
Если нужно найти в постах определённую фразу, то у wp_query есть параметр поиска.
//Посты найденные по поисковой фразе.
$query = new WP_Query( 's=keyword' );
У вас ошибка the_permalink() и the_title() без аргумента сразу выводят ссылку и заголовок, echo лишнее.
// заместо проверки на пустоту, лучше
// привести к целому числу
// $_GET['page'] = 'не_число'
if ( isset($_GET['page']) && !empty($_GET['page']) ) // true
if( isset($_GET['page']) && absint($_GET['page']) ) // false
Пример с wp_query
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$offset = 0;
if( isset($_GET['page']) && absint($_GET['page']) )
$offset = ($_GET['page']-1) * 100;
$args = array(
'post_type' => 'artist' // тип поста
,'post_status' => 'publish' // статус поста опубликованный
,'paged' => $paged // страница пагинации
,'offset' => 0 // сколько постов из результатов запроса пропустить.
,'order' => 'ASC' // сортируем по порядку, от меньшего к большему (1, 2, 3; a, b, c).
,'orderby' => 'title' // по заголовку поста
);
$query = new WP_Query( $args );
while ($query->have_posts()) : $query->the_post();
$var = wp_get_post_terms( $post->ID, 'bands' );
$slug = $var[0]->slug;
$terms = get_terms('bands', 'slug=' . $slug . '');
foreach ($terms as $term) :
$t_count = $term->count;
?>
<li>
<a href="<?php the_permalink();?>" title="<?php the_title();?>">
<?php the_title();?>
</a>
<span class="text-right"><?php echo $t_count ;?></span>
</li>
<?php
endforeach;
endwhile;
wp_reset_postdata();
pagination($additional_loop->max_num_pages); //функция пагинации
?>
Посты могут выводится не по порядку, если установлены плагины для создания пользовательских выводов постов.