This is the code for the dropdown pagination. It uses a js controller too, but it works fine, so, I’m not adding it.
$total = $wp_query->max_num_pages;
// only bother with the rest if we have more than 1 page!
if ( $total > 1 ) {
// get the current page
if ( !$current_page = get_query_var('paged') ){
$current_page = 1;
}
// structure of "format" depends on whether we're using pretty permalinks
$format = 'page/%#%/';
$linkarray = paginate_links(array(
'base' => str_replace( 'page/9999999/', '%_%', esc_url( get_pagenum_link( 9999999 ) ) ),
'format' => $format,
'current' => 0,
'show_all' => true,
'total' => $total,
'mid_size' => 4,
'prev_next' => False,
'type' => 'array'
));
$urlarray = array();
foreach($linkarray as $value){
$pieces = explode(' ',$value);
foreach($pieces as $piece){
if (substr(strtolower($piece),0,4) == 'http'){
$urlarray[] = $piece;
}
}
}
echo '<div style="text-align: center">(Or jump to page ';
echo '<select id="paginationpageselectcontrol" name="paginationpageselectcontrol">' . "n";
$pagecounter = 1;
foreach($urlarray as $url){
echo '<option value="' . $url . '"' . (($pagecounter == $current_page)?' selected':'') . '>' . $pagecounter . '</option>' . "n";
$pagecounter = $pagecounter + 1;
}
echo '</select>' . "n";
echo ' of ' . $total . ')</div>';
}
I think the error is around here:
$urlarray = array();
foreach($linkarray as $value){
$pieces = explode(' ',$value);
foreach($pieces as $piece){
if (substr(strtolower($piece),0,4) == 'http'){
$urlarray[] = $piece;
}
}
}