WP_Sitemaps_Provider{}
Базовий абстрактний клас для створення провайдера Карти WordPress.
Провайдер створюється шляхом створення свого класу на основі цього та подальшої його реєстрації за допомогою функції wp_register_sitemap_provider() .
add_filter( 'init', 'wpkama_register_sitemap_providers'); function wpkama_register_sitemap_providers(){ require_once __DIR__ .'/class-My_Sitemaps_Provider.php'; $provider = New Coredata_Sitemaps_Provider(); wp_register_sitemap_provider( 'provider_name', $provider ); }
Хуки із класу
Властивості
-
$name
(рядок) (обов’язковий) Ім’я провайдера Використовується в URL-картки сайту. Має бути унікальним. Наприклад:
/wp-sitemap-posts-post-1.xml
– Posts тут це ім’я провайдера.ВАЖЛИВО! Дозволяються лише символи
a-z
. Тобто. не можна використовувати тире, прогалини та малі. Неправильно:similar_posts
,similar-posts
,Similar
. Правильноsimilarposts
.-
$object_type
(рядок) (обов’язковий) -
Ім’я об’єкта, з яким працює провайдер (post, term, user). Має бути унікальним. Використовується/передається в хуки. Наприклад другий параметр хука
wp_sitemaps_index_entry .
Методи
Методи, які зазвичай потрібно визначати у спадковому класі:
- get_object_subtypes()
- Повинен повернути список підтипів, наприклад у постів типи постів. Повертає масив об’єктів, у ключах є імена підтипів.
- get_url_list( $page_num, $subtype = ” )
Повинний повернути список посилань для кожної картки – список даних для тегів XML <url> . Виглядає цей список як масив масивів, кожен вкладений масив – це кожне посилання. Наприклад:
$url_list = [ [ 'loc'=> 'https://example.com/megamedia/audio/2610735' ], [ 'loc'=> 'https://example.com/megamedia/audio/9514241' ], ... ];
- get_max_num_pages( $subtype = ” )
- Повинен повернути число – загальна кількість елементів для переданого підтипу. Наприклад, для записів WP – це скільки всього записів зазначеного типу запису, наприклад, скільки всього сторінок (page).
- db_query( $args )
- Це свій довільний метод класу, який створює запит у БД і отримує дані за переданими параметрами, у тому числі тут враховується підтип і пагінація.
Усі методи:
- public get_max_num_pages( $object_subtype = ” )
- public get_object_subtypes()
- public get_sitemap_entries()
- public get_sitemap_type_data()
- public get_sitemap_url( $name, $page )
- public get_url_list( $page_num, $object_subtype = ” )
Приклади
#1 Провайдери з коробки
posts
– WP_Sitemaps_Posts {}taxonomies
– WP_Sitemaps_Taxonomies{}users
– WP_Sitemaps_Users {}
#2 Приклад створення провайдера
список змін
З версії 5.5.0 | Введено. |