Используйте WP_Sitemaps_Provider для создания карт сайта: простой гид

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. Используя доступные методы, вы можете легко генерировать карты сайта и улучшать индексацию вашего сайта в поисковых системах.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *