wp_oembed_add_provider()
Додає oEmbed провайдера. Це URL, який буде парситися в контенті для виведення HTML коду з іншого сайту.
Докладніше про oEmbed в WordPress .
Підходить тільки для сайтів, які підтримують oEmbed формат. Для інших для обробки URL у контенті потрібно створити обробник за допомогою wp_embed_register_handler() .
WP_oEmbed::_add_provider_early()
Хуків немає.
Повертає
null
. Нічого.
Використання
wp_oembed_add_provider( $format, $provider, $regex );
-
$format
(рядок) (обов’язковий) -
Паттерн URL який шукатиметься в контенті. Тут можна вказати регулювання або використовувати знак
*
, який потім буде замінено на
(.+)
. -
$provider
(рядок) (обов’язковий) URL кінцевої точки (endpoint) по якій сайт віддає дані oEmbed формату .
Встановивши порожнє значення, WP спробує отримати це посилання із заголовків HTML оброблюваного посилання (discovery).
-
$regex
(true/false) -
Чи вказано регулювання в параметрі
$format . true – передане регулювання.
Типово: false
Приклади
#1 Приклад додавання провайдера
Допустимо нам потрібно додати oEmbed вбудовування для сайту wizer.me і ми з’ясували, що цей сайт є oEmbed провайдером і знайшли такі дані для обробки такого запиту:
- URL scheme:
http://*.wizer.me/learn/*
- URL scheme:
https://*.wizer.me/learn/*
- URL scheme:
http://*.wizer.me/preview/*
- URL scheme:
https://*.wizer.me/preview/*
- API endpoint:
http://app.wizer.me/api/oembed.{format}
- Supports discovery via <link> tags
// Додамо вбудовування для сайту wizer.me add_action( 'init', 'wizerme_oembed_provider'); function wizerme_oembed_provider() { wp_oembed_add_provider( 'http://*.wizer.me/learn/*', 'http://app.wizer.me/api/oembed.{format}', false ); wp_oembed_add_provider( 'https://*.wizer.me/learn/*', 'http://app.wizer.me/api/oembed.{format}', false ); wp_oembed_add_provider( 'http://*.wizer.me/preview/*', 'http://app.wizer.me/api/oembed.{format}', false ); wp_oembed_add_provider( 'https://*.wizer.me/preview/*', 'http://app.wizer.me/api/oembed.{format}', false ); }
Тепер при вставці в контент посилання виду https://app.wizer.me/preview/1J09IV
вона буде оброблена і вбудована в контент у вигляді iframe.
#2 Приклад додавання провайдера
Тут у форматі вказується регулювання. Це лише демонстрація, насправді youtube провайдер уже зареєстрований у WordPress.
add_action( 'init', 'youtube_oembed_provider'); function youtube_oembed_provider() { wp_oembed_add_provider( '#https?://youtu.be/.*#i', 'https://www.youtube.com/oembed', true ); }
#3 Приклади додавання провайдерів з ядра
Дивіться код WP_oEmbed::__construct() .
нотатки
- Дивіться: WP_oEmbed
список змін
З версії 2.9.0 | Введено. |
Код wp_oembed_add_provider() wp oembed add provider WP 6.0.2
function wp_oembed_add_provider( $format, $provider, $regex = false ) { if ( did_action( 'plugins_loaded' ) ) { $oembed = _wp_oembed_get_object(); $oembed->providers[ $format ] = array( $provider, $regex ); } else { WP_oEmbed::_add_provider_early( $format, $provider, $regex ); } }