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 );