WC_API_Server::add_pagination_headers( WP_Query|WP_User_Query|stdClass $query )
Send pagination headers for resources
Description Description
Parameters Parameters
- $query
-
(Required)
Source Source
File: includes/legacy/api/v2/class-wc-api-server.php
public function add_pagination_headers( $query ) { // WP_User_Query if ( is_a( $query, 'WP_User_Query' ) ) { $single = count( $query->get_results() ) == 1; $total = $query->get_total(); if ( $query->get( 'number' ) > 0 ) { $page = ( $query->get( 'offset' ) / $query->get( 'number' ) ) + 1; $total_pages = ceil( $total / $query->get( 'number' ) ); } else { $page = 1; $total_pages = 1; } } elseif ( is_a( $query, 'stdClass' ) ) { $page = $query->page; $single = $query->is_single; $total = $query->total; $total_pages = $query->total_pages; // WP_Query } else { $page = $query->get( 'paged' ); $single = $query->is_single(); $total = $query->found_posts; $total_pages = $query->max_num_pages; } if ( ! $page ) { $page = 1; } $next_page = absint( $page ) + 1; if ( ! $single ) { // first/prev if ( $page > 1 ) { $this->link_header( 'first', $this->get_paginated_url( 1 ) ); $this->link_header( 'prev', $this->get_paginated_url( $page -1 ) ); } // next if ( $next_page <= $total_pages ) { $this->link_header( 'next', $this->get_paginated_url( $next_page ) ); } // last if ( $page != $total_pages ) { $this->link_header( 'last', $this->get_paginated_url( $total_pages ) ); } } $this->header( 'X-WC-Total', $total ); $this->header( 'X-WC-TotalPages', $total_pages ); do_action( 'woocommerce_api_pagination_headers', $this, $query ); }
Changelog Changelog
Version | Description |
---|---|
2.1 | Introduced. |