WP_Sitemaps_Provider: Простой гид по использованию
Введение в класс WP_Sitemaps_Provider
Класс WP_Sitemaps_Provider
был введен в WordPress с версии 5.5.0. Он отвечает за создание карт сайта, которые помогают поисковым системам лучше индексировать ваш контент.
Хуки из класса
Класс использует хуки, например:
wp_sitemaps_index_entry
.
Использование класса
Для создания нового объекта класса WP_Sitemaps_Provider
, выполните следующий код:
$WP_Sitemaps_Provider = new WP_Sitemaps_Provider();
// теперь можно использовать методы класса
Методы класса
Вот основные методы, которые вы можете использовать:
1. public get_max_num_pages( $object_subtype = '' )
Этот метод возвращает максимальное количество страниц для определенного типа объекта.
2. public get_object_subtypes()
Метод возвращает подтипы объектов, которые поддерживает данный провайдер.
3. public get_sitemap_entries()
Метод получает записи карт сайта. Эти записи содержат информацию, необходимую для создания карты.
4. public get_sitemap_type_data()
Метод возвращает данные о типах карт сайта, включая информацию о подтипах объектов и количестве страниц.
5. public get_sitemap_url( $name, $page )
Метод создает URL для карты сайта.
6. public get_url_list( $page_num, $object_subtype = '' )
Метод возвращает список URL для карты сайта.
Примеры использования
Пример 1: Стандартные провайдеры
Вы можете использовать следующие стандартные провайдеры "из коробки":
- Посты:
WP_Sitemaps_Posts{}
- Таксономии:
WP_Sitemaps_Taxonomies{}
- Пользователи:
WP_Sitemaps_Users{}
Пример 2: Создание собственного провайдера
Если вы хотите создать собственный провайдер для карты сайта, вам нужно будет следовать примеру, который можно найти в документации WordPress.
Изменения в классе
Класс WP_Sitemaps_Provider
был введен в версии 5.5.0. Это значит, что вам нужно использовать эту версию или более новую, чтобы иметь доступ к функционалу данного класса.
Код класса
Вот упрощенный пример кода класса WP_Sitemaps_Provider
:
abstract class WP_Sitemaps_Provider {
protected $name = ''; // Имя провайдера
protected $object_type = ''; // Тип объекта (например, 'пост', 'термин', 'пользователь')
// Получить список URL для карты сайта
abstract public function get_url_list( $page_num, $object_subtype = '' );
// Получить максимальное количество страниц для типа объекта
abstract public function get_max_num_pages( $object_subtype = '' );
// Получить данные о каждом типе карты
public function get_sitemap_type_data() {
$sitemap_data = array();
$object_subtypes = $this->get_object_subtypes();
if ( empty( $object_subtypes ) ) {
$sitemap_data[] = array(
'name' => '',
'pages' => $this->get_max_num_pages(),
);
return $sitemap_data;
}
foreach ( $object_subtypes as $object_subtype_name => $data ) {
$sitemap_data[] = array(
'name' => $object_subtype_name,
'pages' => $this->get_max_num_pages( $object_subtype_name ),
);
}
return $sitemap_data;
}
// Получить URL карты сайта
public function get_sitemap_url( $name, $page ) {
return home_url( sprintf('/wp-sitemap-%1$s.xml', $name));
}
// Вернуть список подтипов объектов
public function get_object_subtypes() {
return array();
}
}
Заключение
Класс WP_Sitemaps_Provider
— это мощный инструмент, который облегчает создание карт сайта для вашего контента в WordPress. Используя доступные методы, вы можете легко генерировать карты сайта и улучшать индексацию вашего сайта в поисковых системах.