/** * Print the pagination links * * @param CUAR_AddOn $current_page_addon * @param WP_Query $query * @param string $pagination_base * @param int $current_page */ public function print_pagination($current_page_addon, $query, $pagination_base, $current_page) { $total = $query->max_num_pages; // Don't do anything if only a single page if ($total == 1) { return; } // Don't print all pages if there are too many of them $skip_middle_pages = $total > 10; $left_spacer_added = false; $right_spacer_added = false; // Build the array of page links $pagination_param_name = _x('page-num', 'pagination_parameter_name (should not be "page")', 'cuar'); $page_links = array(); for ($i = 1; $i <= $total; ++$i) { if ($skip_middle_pages) { if ($i > 2 && $i < $current_page - 1) { if (!$left_spacer_added) { $left_spacer_added = true; $page_links[$i] = array('link' => false, 'is_current' => false); } continue; } if ($i > $current_page + 1 && $i < $total - 1) { if (!$right_spacer_added) { $right_spacer_added = true; $page_links[$i] = array('link' => false, 'is_current' => false); } continue; } } $link = add_query_arg($pagination_param_name, $i, $pagination_base); $page_links[$i] = array('link' => $link, 'is_current' => $i == $current_page); } $page_links = apply_filters('cuar/core/page/pagination-items', $page_links, $current_page, $total); include $this->plugin->get_template_file_path(array($current_page_addon->get_page_addon_path(), CUAR_INCLUDES_DIR . '/core-addons/customer-pages'), $current_page_addon->get_slug() . "-pagination.template.php", 'templates', "pagination.template.php"); }