WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

wp_sitemaps_posts_query_args хук-фильтр . WP 5.5.0

Позволяет изменить параметры запроса WP_Query для карты сайта записей (постов).

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

add_filter( 'wp_sitemaps_posts_query_args', 'filter_function_name_992', 10, 2 );
function filter_function_name_992( $args, $post_type ){
	// filter...

	return $args;
}
$args(массив)

Массив параметров, которые будут переданы в WP_Query при получении постов для карты сайта.

array(
	'orderby'                => 'ID',
	'order'                  => 'ASC',
	'post_type'              => $post_type,
	'posts_per_page'         => wp_sitemaps_get_max_urls( $this->object_type ),
	'post_status'            => array( 'publish' ),
	'no_found_rows'          => true,
	'update_post_term_cache' => false,
	'update_post_meta_cache' => false,
)
$post_type(строка)
Типа записи, для которого фильтруются параметры запроса.

Примеры

#1 Исключим записи из карты сайта

Допустим вы разрабатываете плагин, который устанавливает некоторым страницам метатег noindex, неплохо бы также исключить эти страницы из карты сайта.

add_filter( 'wp_sitemaps_posts_query_args', 'kama_sitemaps_posts_query_args', 10, 2 );
function kama_sitemaps_posts_query_args( $args, $post_type ) {
	// не наш тип записи
	if ( 'post' !== $post_type ) {
		return $args;
	}

	// учтем что этот параметр может быть уже установлен
	$args['post__not_in'] = isset( $args['post__not_in'] ) ? $args['post__not_in'] : array();

	// Исключаем посты
	$args['post__not_in'][] = 12;
	$args['post__not_in'][] = 24;

	return $args;
}

Список изменений

С версии 5.5.0 Введена.

Где вызывается хук

WP_Sitemaps_Posts::get_posts_query_args()
wp_sitemaps_posts_query_args
wp-includes/sitemaps/providers/class-wp-sitemaps-posts.php 200-213
$args = apply_filters(
	'wp_sitemaps_posts_query_args',
	array(
		'orderby'                => 'ID',
		'order'                  => 'ASC',
		'post_type'              => $post_type,
		'posts_per_page'         => wp_sitemaps_get_max_urls( $this->object_type ),
		'post_status'            => array( 'publish' ),
		'no_found_rows'          => true,
		'update_post_term_cache' => false,
		'update_post_meta_cache' => false,
	),
	$post_type
);

Где используется хук в ядре WordPress

Использование не найдено.
Комментариев нет