WP_Sitemaps_Posts::get_url_list()
Gets a URL list for a post type sitemap.
Метод класса: WP_Sitemaps_Posts{}
Хуки из метода
Возвращает
Массив[]
. Array of URL information for a sitemap.
Использование
$WP_Sitemaps_Posts = new WP_Sitemaps_Posts(); $WP_Sitemaps_Posts->get_url_list( $page_num, $object_subtype );
- $page_num(int) (обязательный)
- Page of results.
- $object_subtype(строка)
- Post type name.
По умолчанию: ''
Список изменений
С версии 5.5.0 | Введена. |
С версии 5.9.0 | Renamed $post_type to $object_subtype to match parent class for PHP 8 named parameter support. |
Код WP_Sitemaps_Posts::get_url_list() WP Sitemaps Posts::get url list WP 6.3.1
public function get_url_list( $page_num, $object_subtype = '' ) { // Restores the more descriptive, specific name for use within this method. $post_type = $object_subtype; // Bail early if the queried post type is not supported. $supported_types = $this->get_object_subtypes(); if ( ! isset( $supported_types[ $post_type ] ) ) { return array(); } /** * Filters the posts URL list before it is generated. * * Returning a non-null value will effectively short-circuit the generation, * returning that value instead. * * @since 5.5.0 * * @param array[]|null $url_list The URL list. Default null. * @param string $post_type Post type name. * @param int $page_num Page of results. */ $url_list = apply_filters( 'wp_sitemaps_posts_pre_url_list', null, $post_type, $page_num ); if ( null !== $url_list ) { return $url_list; } $args = $this->get_posts_query_args( $post_type ); $args['paged'] = $page_num; $query = new WP_Query( $args ); $url_list = array(); /* * Add a URL for the homepage in the pages sitemap. * Shows only on the first page if the reading settings are set to display latest posts. */ if ( 'page' === $post_type && 1 === $page_num && 'posts' === get_option( 'show_on_front' ) ) { // Extract the data needed for home URL to add to the array. $sitemap_entry = array( 'loc' => home_url( '/' ), ); /** * Filters the sitemap entry for the home page when the 'show_on_front' option equals 'posts'. * * @since 5.5.0 * * @param array $sitemap_entry Sitemap entry for the home page. */ $sitemap_entry = apply_filters( 'wp_sitemaps_posts_show_on_front_entry', $sitemap_entry ); $url_list[] = $sitemap_entry; } foreach ( $query->posts as $post ) { $sitemap_entry = array( 'loc' => get_permalink( $post ), ); /** * Filters the sitemap entry for an individual post. * * @since 5.5.0 * * @param array $sitemap_entry Sitemap entry for the post. * @param WP_Post $post Post object. * @param string $post_type Name of the post_type. */ $sitemap_entry = apply_filters( 'wp_sitemaps_posts_entry', $sitemap_entry, $post, $post_type ); $url_list[] = $sitemap_entry; } return $url_list; }