WP_Sitemaps_Taxonomies::get_url_list() – Gets a URL list for a taxonomy sitemap.

You appear to be a bot. Output may be restricted

Description

Gets a URL list for a taxonomy sitemap.

Usage

$array[] = WP_Sitemaps_Taxonomies::get_url_list( $page_num, $object_subtype );

Parameters

$page_num
( int ) required – Page of results.
$object_subtype
( string ) optional – Optional. Taxonomy name. Default empty.

Returns

array[] Array of URL information for a sitemap.

Source

File name: wordpress/wp-includes/sitemaps/providers/class-wp-sitemaps-taxonomies.php


Lines:

1 to 77 of 77
  public function get_url_list( $page_num, $object_subtype = '' ) {
    // Restores the more descriptive, specific name for use within this method.
    $taxonomy        = $object_subtype;
    $supported_types = $this->get_object_subtypes();

    // Bail early if the queried taxonomy is not supported.
    if ( ! isset( $supported_types[ $taxonomy ] ) ) {
      return array();
    }

    
/**
 * Filters the taxonomies 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       $taxonomy Taxonomy name.
 * @param int          $page_num Page of results.
 */
    $url_list = apply_filters(
      'wp_sitemaps_taxonomies_pre_url_list',
      null,
      $taxonomy,
      $page_num
    );

    if ( null !== $url_list ) {
      return $url_list;
    }

    $url_list = array();

    // Offset by how many terms should be included in previous pages.
    $offset = ( $page_num - 1 ) * wp_sitemaps_get_max_urls( $this->object_type );

    $args           = $this->get_taxonomies_query_args( $taxonomy );
    $args['fields'] = 'all';
    $args['offset'] = $offset;

    $taxonomy_terms = new WP_Term_Query( $args );

    if ( ! empty( $taxonomy_terms->terms ) ) {
      foreach ( $taxonomy_terms->terms as $term ) {
        $term_link = get_term_link( $term, $taxonomy );

        if ( is_wp_error( $term_link ) ) {
          continue;
        }

        $sitemap_entry = array(
          'loc' => $term_link,
        );

        
/**
 * Filters the sitemap entry for an individual term.
 *
 * @since 5.5.0
 * @since 6.0.0 Added `$term` argument containing the term object.
 *
 * @param array   $sitemap_entry Sitemap entry for the term.
 * @param int     $term_id       Term ID.
 * @param string  $taxonomy      Taxonomy name.
 * @param WP_Term $term          Term object.
 */
        $sitemap_entry = apply_filters( 'wp_sitemaps_taxonomies_entry', $sitemap_entry, $term->term_id, $taxonomy, $term );
        $url_list[]    = $sitemap_entry;
      }
    }

    return $url_list;
  }
 

 View on GitHub View on Trac