コード例 #1
0
 /**
  * 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");
 }