Работа с провайдерами sitemap
В контексте WordPress провайдер sitemap — это класс, который отвечает за генерацию определённого набора URL внутри XML-карты сайта.
Проще говоря:
Провайдер = источник данных для sitemap.
📌 Как это устроено внутри WordPress
Начиная с версии 5.5 в WordPress появился класс:
WP_Sitemaps
Он управляет всей системой sitemap и подключает провайдеры.
Каждый провайдер отвечает за свой тип данных.
По умолчанию есть три:
| Провайдер | Что генерирует |
|---|---|
posts |
записи, страницы, custom post types |
taxonomies |
категории, теги, кастомные таксономии |
users |
архивы авторов |
🔎 Пример структуры
Это индекс. В нём ссылки на:
Каждый из этих файлов формируется отдельным провайдером.
📦 Что делает провайдер технически
Каждый провайдер — это класс, наследующий:
Он обязан реализовать два метода:
🔹 get_url_list()
Возвращает массив URL для текущей страницы sitemap.
🔹 get_max_num_pages()
Возвращает количество страниц sitemap (если URL много).
🧠 Простая аналогия
Представьте sitemap как каталог:
-
Индекс — оглавление
-
Провайдер — глава каталога
-
get_url_list() — список страниц в главе
💡 Почему это удобно
Провайдеры позволяют:
-
отключить стандартные данные
-
добавить собственные URL
-
изменить логику выборки
-
добавить кастомный sitemap (например, для API или фильтров)
✅ Отключаем стандартные провайдеры
Добавьте в functions.php или в плагин:
add_filter('wp_sitemaps_add_provider', function ($provider, $name) {
// отключаем стандартные: posts, taxonomies, users
if (in_array($name, ['posts', 'taxonomies', 'users'])) {
return false;
}
return $provider;
}, 10, 2);