WordPress: Шорткоды с параметрами

WordPress: Шорткоды с параметрами

В то время как простые шорткоды решают большинство задач по выводу сложного содержимого на странице, позволяя ввести для этого всего лишь несколько символов в редакторе поста, но на самом деле шорткоды, были бы еще более полезными, если бы могли передавать их функциям-обработчикам параметры, какие мы захотим. И такая возможность у нас есть!

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

Итак, мы создадим шорткод, который будет использоваться для быстрого добавления кода видео-проигрывателя с YouTube в тело поста или страницы.

  1. Перейдите в директорию плагинов движка WordPress: wp-content/plugins
  2. Создайте там новую директорию и назовите её youtube-embed
  3. Зайдите внутрь директории и создайте новый текстовый файл. Назовите его youtube-embed.php
  4. Откройте ваш новый файл в текстовом редакторе и добавьте следующий код:
        <?php
        /*
            Plugin Name:    YouTube Embed.
            Plugin URI:
            Description:    Этот плагин позволяет добавлять шорткод видео с YouTube [youtubevid]
            Version:        1.0
            Author:         Самый лучший автор
            Author URI:     http://xxxxxxx.xx/
            License:        GPLv2
        */
    
  5. Присоединим функцию-обработчик youtube_embed_shortcode к шорткоду youtubevid:
    add_shortcode('youtubevid', 'youtube_embed_shortcode' );
    
  6. Далее реализуем функцию обработчик:
    function youtube_embed_shortcode( $atts )
    {
        extract( shortcode_atts( array(
            'id' => ''
        ), $atts ) );
    
        return '<iframe width="560"
        height="315" src="http://www.youtube.com/embed/' . $id . '"
        frameborder="0" allowfullscreen></iframe>';
    }
    
  7. Сохраняем файл
  8. Идем в админку нашего сайта во вкладку Plugins
  9. Находим наш плагин в списке и активируем его
  10. Создайте новую страницу или пост и разместите в текстовом редакторе следующее содержимое (n-M41MYVODg - идентификатор видео на YouTube):

    [youtubevid id='n-M41MYVODg']

  11. Сохраните изменение.

Теперь если просмотреть то, что мы только что создали на сайте то мы сможем увидеть видеоплеер с видео с YouTube.

Как это работает...

Если шорткод используется с параметрами, то эти параметры, передаются в функцию-обработчик как массив пар ключ-значение ($atts). С помощью комбинации стандартной PHP функции extract и WordPress функции: shortcode_atts, мы в итоге извлекаем данные из массива. В этом конкретном примере мы используем только одну переменную $id, но на самом деле параметров шорткода может быть сколько угодно.

После того, как мы получили ID видео внутри функции ($id), мы можем собрать необходимый HTML код, который будет вставлять и отображать выбранный видео-файл в видео плеере в теле поста или страницы. Незабываем вернуть результат работы функции при помощи инструкции return.

Предыдущие статьи этого цикла:

  1. WordPress: С чего начинаются плагины
  2. WordPress: Добавление контента в тег head страниц
  3. WordPress: Функции для работы с путями
  4. WordPress: Использование хуков фильтров
  5. WordPress: Добавление содержимого в каждый пост при помощи фильтров
  6. WordPress: Изменение содержимого страницы при помощи фильтров
  7. Отлов ошибок при разработке плагинов
  8. Wordpress: Простые шорткоды

Добавить комментарий


Защитный код
Обновить



Кто на сайте
Сейчас 110 гостей онлайн