wp_sitemaps_add_provider
Позволяет изменить/удалить поставщика карты сайта (PHP-объект, отвечающий за создание карты сайта определенного типа: посты, юзеры) перед тем, как он будет добавлен в список провайдеров.
Использование
add_filter( 'wp_sitemaps_add_provider', 'wp_kama_sitemaps_add_provider_filter', 10, 2 );
/**
* Function for `wp_sitemaps_add_provider` filter-hook.
*
* @param WP_Sitemaps_Provider $provider Instance of a WP_Sitemaps_Provider.
* @param string $name Name of the sitemap provider.
*
* @return WP_Sitemaps_Provider
*/
function wp_kama_sitemaps_add_provider_filter( $provider, $name ){
// filter...
return $provider;
}
- $provider(WP_Sitemaps_Provider)
- Генератор карт сайта определенного типа (тип передается в параметре
$name). Экземпляр класса WP_Sitemaps_Provider. - $name(строка)
- Имя поставщика карт сайтов. Может быть:
posts,taxonomies,users.
Примеры
#1 Удалим карту сайта Юзеров
Допустим мы перешли на страницу /wp-sitemap.xml и видим там ненужную нам ссылку на страницу со ссылками на авторов (карту сайта авторов).
Удалим карту сайта пользователей:
// удаляет провайдера пользователей из карты сайта
add_filter( 'wp_sitemaps_add_provider', 'kama_remove_sitemap_provider', 10, 2 );
function kama_remove_sitemap_provider( $provider, $name ) {
if ( 'users' === $name ) {
return false;
}
return $provider;
}Список изменений
| С версии 5.5.0 | Введена. |
Где вызывается хук
wp_sitemaps_add_provider
wp-includes/sitemaps/class-wp-sitemaps-registry.php 50
$provider = apply_filters( 'wp_sitemaps_add_provider', $provider, $name );