wp_sitemaps_posts_query_args
Дозволяє змінити параметри запиту WP_Query для картки сайту записів (постів).
Використання
add_filter( 'wp_sitemaps_posts_query_args', 'wp_kama_sitemaps_posts_query_args_filter', 10, 2);
/**
* Function for `wp_sitemaps_posts_query_args` filter-hook.
*
* @param array $args Array of WP_Query arguments.
* @param string $post_type Post type name.
*
* @return array
*/
function wp_kama_sitemaps_posts_query_args_filter( $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_query_args