Yoast\WP\SEO\Helpers
Pagination_Helper::get_paginated_url
Builds a paginated URL.
Метод класса: Pagination_Helper{}
Хуков нет.
Возвращает
Строку. The paginated URL.
Использование
$Pagination_Helper = new Pagination_Helper(); $Pagination_Helper->get_paginated_url( $url, $page, $add_pagination_base, $pagination_query_name );
- $url(строка) (обязательный)
- The un-paginated URL of the current archive.
- $page(строка) (обязательный)
- The page number to add on to
$urlfor the$linktag. - $add_pagination_base(true|false)
- Whether to add the pagination base (
page) to the url.
По умолчанию:true - $pagination_query_name(строка)
- The name of the query argument that holds the current page.
По умолчанию:'page'
Код Pagination_Helper::get_paginated_url() Pagination Helper::get paginated url Yoast 27.8
public function get_paginated_url( $url, $page, $add_pagination_base = true, $pagination_query_name = 'page' ) {
$wp_rewrite = $this->wp_rewrite_wrapper->get();
$key_query_loop = $this->get_key_query_loop();
if ( $key_query_loop ) {
$pagination_query_name = $key_query_loop;
}
if ( $wp_rewrite->using_permalinks() && ! $key_query_loop ) {
$url_parts = \wp_parse_url( $url );
$has_url_params = \array_key_exists( 'query', $url_parts );
if ( $has_url_params ) {
// We need to first remove the query params, before potentially adding the pagination parts.
\wp_parse_str( $url_parts['query'], $query_parts );
$url = \trailingslashit( \remove_query_arg( \array_keys( $query_parts ), $url ) );
if ( $add_pagination_base ) {
$url .= \trailingslashit( $wp_rewrite->pagination_base );
}
// We can now re-add the query params, after appending the last pagination parts.
return \add_query_arg( $query_parts, \user_trailingslashit( $url . $page ) );
}
$url = \trailingslashit( $url );
if ( $add_pagination_base ) {
$url .= \trailingslashit( $wp_rewrite->pagination_base );
}
return \user_trailingslashit( $url . $page );
}
return \add_query_arg( $pagination_query_name, $page, \user_trailingslashit( $url ) );
}