Расшифровка функции wp_embed_register_handler() в WordPress

Функция wp_embed_register_handler()

wp_embed_register_handler() — это функция, которая регистрирует обработчик встраивания (embed handler) для WordPress. Эта функция может быть полезна для сайтов, которые не поддерживают стандартный механизм oEmbed.

Возвращаемое значение

Функция не возвращает ничего (null).

Использование

Вот как использовать эту функцию:

wp_embed_register_handler( $id, $regex, $callback, $priority );

Параметры:

  • $id (строка) (обязательный): Уникальный идентификатор/название для обработчика.
  • $regex (строка) (обязательный): Регулярное выражение, которое проверяется, чтобы определить, должен ли этот обработчик использоваться для URL.
  • $callback (callable) (обязательный): Функция обратного вызова, которая будет вызвана, если регулярное выражение совпадает.
  • $priority (int): Приоритет для определения порядка, в котором будут проверяться зарегистрированные обработчики. По умолчанию: 10.

Примеры

1. Встраивание Gist в постах

Хотите, чтобы ссылка на ваш Gist автоматически превращалась в код, как это делает WordPress с ссылками на видео с YouTube? Давайте разберемся, как это сделать.

Следующий код можно вставить в файл functions.php вашей темы или создать плагин:

add_action( 'init', 'register_gist_oembed_provider' );

function register_gist_oembed_provider() {
    wp_embed_register_handler(
        'gist',
        '~https://gist.github.com/[a-z0-9]+/[a-z0-9]+~im',
        'callback_gist_oembed_provider'
    );
}

function callback_gist_oembed_provider( $matches ) {
    return sprintf( '', $matches[0] );
}

С этим решением не происходит запросов к серверу, поэтому нет кеширования результата.

2. Встраивание видео Forbes

Вы также можете зарегистрировать обработчик для встраивания видео с Forbes. Вот пример:

wp_embed_register_handler(
    'forbes',
    '~http://(?:www|video).forbes.com/(?:video/embed/embed.html|embedvideo/)?show=(?P[d]+)&format=frame&height=(?P[d]+)&width=(?P[d]+)&video=(?P

Примечания

  • Глобальная переменная: WP_Embed $wp_embed — это объект встраивания WordPress.

История изменений

  • С версии 2.9.0: Функция была добавлена в WordPress.

Связанные функции

  • get_oembed_response_data_for_url()
  • get_post_embed_html()
  • get_post_embed_url()
  • is_embed()
  • wp_get_audio_extensions()
  • wp_get_video_extensions()
  • И другие...

Эта функция может быть очень полезна, если вы хотите расширить функциональность вашего сайта, добавляя поддержку для различных видов встраиваемого контента.

Leave a Reply

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