WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Авторские Темы для WordPress
функция не описана

WPSEO_Taxonomy_Sitemap_Provider::get_sitemap_links() public Yoast 1.0

Get set of sitemap link data.

{} Это метод класса: WPSEO_Taxonomy_Sitemap_Provider{}

Возвращает

Массив. Ничего.

Использование

$WPSEO_Taxonomy_Sitemap_Provider = new WPSEO_Taxonomy_Sitemap_Provider();
$WPSEO_Taxonomy_Sitemap_Provider->get_sitemap_links( $type, $max_entries, $current_page );
$type(строка) (обязательный)
Sitemap type.
$max_entries(число) (обязательный)
Entries per sitemap.
$current_page(число) (обязательный)
Current page of the sitemap.

Код WPSEO_Taxonomy_Sitemap_Provider::get_sitemap_links() Yoast 16.2

<?php
public function get_sitemap_links( $type, $max_entries, $current_page ) {
	global $wpdb;

	$links = [];
	if ( ! $this->handles_type( $type ) ) {
		return $links;
	}

	$taxonomy = get_taxonomy( $type );

	$steps  = $max_entries;
	$offset = ( $current_page > 1 ) ? ( ( $current_page - 1 ) * $max_entries ) : 0;

	/** This filter is documented in inc/sitemaps/class-taxonomy-sitemap-provider.php */
	$hide_empty = apply_filters( 'wpseo_sitemap_exclude_empty_terms', true, [ $taxonomy->name ] );
	/** This filter is documented in inc/sitemaps/class-taxonomy-sitemap-provider.php */
	$hide_empty_tax = apply_filters( 'wpseo_sitemap_exclude_empty_terms_taxonomy', $hide_empty, $taxonomy->name );
	$terms          = get_terms(
		[
			'taxonomy'               => $taxonomy->name,
			'hide_empty'             => $hide_empty_tax,
			'update_term_meta_cache' => false,
			'offset'                 => $offset,
			'number'                 => $steps,
		]
	);

	// If there are no terms fetched for this range, we are on an invalid page.
	if ( empty( $terms ) ) {
		throw new OutOfBoundsException( 'Invalid sitemap page requested' );
	}

	$post_statuses = array_map( 'esc_sql', WPSEO_Sitemaps::get_post_statuses() );

	// Grab last modified date.
	$sql = "
		SELECT MAX(p.post_modified_gmt) AS lastmod
		FROM	$wpdb->posts AS p
		INNER JOIN $wpdb->term_relationships AS term_rel
			ON		term_rel.object_id = p.ID
		INNER JOIN $wpdb->term_taxonomy AS term_tax
			ON		term_tax.term_taxonomy_id = term_rel.term_taxonomy_id
			AND		term_tax.taxonomy = %s
			AND		term_tax.term_id = %d
		WHERE	p.post_status IN ('" . implode( "','", $post_statuses ) . "')
			AND		p.post_password = ''
	";

	/**
	 * Filter: 'wpseo_exclude_from_sitemap_by_term_ids' - Allow excluding terms by ID.
	 *
	 * @api array $terms_to_exclude The terms to exclude.
	 */
	$terms_to_exclude = apply_filters( 'wpseo_exclude_from_sitemap_by_term_ids', [] );

	foreach ( $terms as $term ) {

		if ( in_array( $term->term_id, $terms_to_exclude, true ) ) {
			continue;
		}

		$url = [];

		$tax_noindex = WPSEO_Taxonomy_Meta::get_term_meta( $term, $term->taxonomy, 'noindex' );

		if ( $tax_noindex === 'noindex' ) {
			continue;
		}

		$url['loc'] = WPSEO_Taxonomy_Meta::get_term_meta( $term, $term->taxonomy, 'canonical' );

		if ( ! is_string( $url['loc'] ) || $url['loc'] === '' ) {
			$url['loc'] = get_term_link( $term, $term->taxonomy );
		}

		$url['mod'] = $wpdb->get_var( $wpdb->prepare( $sql, $term->taxonomy, $term->term_id ) );

		if ( $this->include_images ) {
			$url['images'] = $this->get_image_parser()->get_term_images( $term );
		}

		// Deprecated, kept for backwards data compat. R.
		$url['chf'] = 'daily';
		$url['pri'] = 1;

		/** This filter is documented at inc/sitemaps/class-post-type-sitemap-provider.php */
		$url = apply_filters( 'wpseo_sitemap_entry', $url, 'term', $term );

		if ( ! empty( $url ) ) {
			$links[] = $url;
		}
	}

	return $links;
}