public static function display_pager($max_num_pages, $custom_byt_paged = false) { $pattern = '#(www\\.|https?:\\/\\/){1}[a-zA-Z0-9\\-]{2,254}\\.[a-zA-Z0-9]{2,20}[a-zA-Z0-9.?&=_/]*#i'; $big = 999999999; // need an unlikely integer $pager_settings = array('base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 'total' => $max_num_pages, 'prev_text' => __('<', 'bookyourtravel'), 'next_text' => __('>', 'bookyourtravel'), 'type' => 'array'); if ($custom_byt_paged) { $pager_settings['format'] = '?paged-byt=%#%'; $pager_settings['current'] = max(1, get_query_var('paged-byt')); } else { $pager_settings['format'] = '?paged=%#%'; $pager_settings['current'] = max(1, get_query_var('paged')); } $pager_links = paginate_links($pager_settings); $count_links = count($pager_links); if ($count_links > 0) { $first_link = $pager_links[0]; $last_link = $first_link; preg_match_all($pattern, $first_link, $matches, PREG_PATTERN_ORDER); echo '<span><a href="' . get_pagenum_link(1) . '">' . __('First page', 'bookyourtravel') . '</a></span>'; for ($i = 0; $i < $count_links; $i++) { $pager_link = $pager_links[$i]; if (!BYT_Theme_Utils::string_contains($pager_link, 'current')) { echo '<span>' . $pager_link . '</span>'; } else { echo $pager_link; } $last_link = $pager_link; } preg_match_all($pattern, $last_link, $matches, PREG_PATTERN_ORDER); echo '<span><a href="' . get_pagenum_link($max_num_pages) . '">' . __('Last page', 'bookyourtravel') . '</a></span>'; } }