Custom taxonomy list and sortby letter pagination problem

I’m getting a taxonomy list page with pagination using this code :

<?php
$sortby = $_GET['sortby'];
if(isset($_GET['showall'])):
$args = array('hide_empty' => 0);
else:
$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
$per_page = 1; //number of actores to show per page
$offset = ($page-1) * $per_page;
$args = array('number' => $per_page, 'offset' => $offset, 'hide_empty' => 0);
                        endif;
$taxonomy = 'actores';
$tax_terms = get_terms($taxonomy, $args);
?>
<?php foreach ($tax_terms as $cat) : ?>
<?php $flag = 0; if($sortby == substr($cat->name, 0, 1) || $sortby == '') {$flag = 1;} if($flag == '1') { ?>
<div class="td-block-span-actores">
<div class="td_module_3 td_module_wrap td-animation-stack">
<div class="td-module-image">
<div class="td-module-thumb-actores">
<a href="https://wordpress.stackexchange.com/questions/269119/<?php echo get_term_link($cat->slug,"actores'); ?>">
<?php $actores_image = z_taxonomy_image_url($cat->term_id); if(!empty($actores_image)) : ?>
<img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" alt title="<?php echo $cat->name; ?>" />
<?php else : ?>
<img src="<?php echo get_bloginfo('template_directory'); ?>/images/no-thumb/td_386x520.png" alt title="<?php echo $cat->name; ?>" />
<?php endif; ?>
</div>
<div class="entry-title td-module-title">
<a href="https://wordpress.stackexchange.com/questions/269119/<?php echo get_term_link($cat->slug,"actores'); ?>"><?php echo $cat->name; ?></a>
</div>
<span class="count">
<?php echo $cat->count; ?> <?php if($cat->count > 1) {
_e('Videos');
} else {
_e('Video');
} ?>
</span>
</div>
</div>
</div>
<?php } ?>
<?php endforeach; ?>
</div>
<?php
if(!isset($_GET['showall'])):
$total_terms = wp_count_terms('actores');
$pages = ceil($total_terms / $per_page);
if($pages > 1):
echo '<div class="page-nav td-pb-padding-side">';
echo paginate_links( array(
'base' => preg_replace('/\?.*/', "https://wordpress.stackexchange.com/", get_pagenum_link(1)) . '%_%',
'format' => 'page/%#%/',
'prev_text' => __('&laquo;'),
'next_text' => __('&raquo;'),
'total' => ceil($total_terms / $per_page),
'current' => $page,
));
echo '<div class="page-nav td-pb-padding-side"><a href="'.get_permalink().'?showall=true">Show all</a></div>';
echo "<span class=\"pages\">Page ".$paged." of ".$pages."</span>";
echo '</div>';
endif;
else:
echo '<div class="page-nav td-pb-padding-side"><a href="'.get_permalink().'">Show numeric pagination</a></div>';
endif;
?>

And this code for sortby letter function:

<?php
// a to z pagination
if(!function_exists('a_to_z_pagination')) {
function a_to_z_pagination() {
$order = isset($_REQUEST['sortby']) ? trim($_REQUEST['sortby']) : null;
$sort_array = array(
'A' =>  __('A'),
'B' =>  __('B'),
'C' =>  __('C'),
'D' =>  __('D'),
'E' =>  __('E'),
'F' =>  __('F'),
'G' =>  __('G'),
'H' =>  __('H'),
'I' =>  __('I'),
'J' =>  __('J'),
'K' =>  __('K'),
'L' =>  __('L'),
'M' =>  __('M'),
'N' =>  __('N'),
'O' =>  __('O'),
'P' =>  __('P'),
'Q' =>  __('Q'),
'R' =>  __('R'),
'S' =>  __('S'),
'T' =>  __('T'),
'U' =>  __('U'),
'V' =>  __('V'),
'W' =>  __('W'),
'X' =>  __('X'),
'Y' =>  __('Y'),
'Z' =>  __('Z'),
);
foreach ($sort_array as $key => $value) {
$active = ($order == $key) ? 'page-numbers current' : null;
$block .= '<a class="'.$active.'" href="'.get_permalink().'?sortby='.$key.'">'.$value.'</a>';
}
print $block;
}
add_action('a_to_z_pagination', 'a_to_z_pagination');
}

My problem is that i’m getting empty pages when i use the sortby letter…

Example:

I have 4 custom tax “actores”

1 tax per page

4 pages

tax slug: Ana, Brian, Carlos, Diana,

when i sortby letter “B” i get

page 1 – empty (actores/page/1/?sortby=B)

page 2 – Brian (actores/page/2/?sortby=B)

page 3 – empty (actores/page/3/?sortby=B)

page 4 – empty (actores/page/4/?sortby=B)

0

Leave a Comment