WordPress: Шорткоды с параметрами
В то время как простые шорткоды решают большинство задач по выводу сложного содержимого на странице, позволяя ввести для этого всего лишь несколько символов в редакторе поста, но на самом деле шорткоды, были бы еще более полезными, если бы могли передавать их функциям-обработчикам параметры, какие мы захотим. И такая возможность у нас есть!
Используя эту технику, становится очень легко создать шорткод, который например ускоряет вставку кода какого-нибудь проигрывателя в тело поста или страницы, нужно только указать шорткод и уникальный идентификатор медиа элемента для отображения. Вместо того, что бы каждый раз прописывать длинный HTML код.
Итак, мы создадим шорткод, который будет использоваться для быстрого добавления кода видео-проигрывателя с YouTube в тело поста или страницы.
- Перейдите в директорию плагинов движка WordPress: wp-content/plugins
- Создайте там новую директорию и назовите её youtube-embed
- Зайдите внутрь директории и создайте новый текстовый файл. Назовите его youtube-embed.php
- Откройте ваш новый файл в текстовом редакторе и добавьте следующий код:
<?php /* Plugin Name: YouTube Embed. Plugin URI: Description: Этот плагин позволяет добавлять шорткод видео с YouTube [youtubevid] Version: 1.0 Author: Самый лучший автор Author URI: http://xxxxxxx.xx/ License: GPLv2 */
-
Присоединим функцию-обработчик youtube_embed_shortcode к шорткоду youtubevid:
add_shortcode('youtubevid', 'youtube_embed_shortcode' );
-
Далее реализуем функцию обработчик:
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>'; }
- Сохраняем файл
- Идем в админку нашего сайта во вкладку Plugins
- Находим наш плагин в списке и активируем его
- Создайте новую страницу или пост и разместите в текстовом редакторе следующее содержимое (n-M41MYVODg - идентификатор видео на YouTube):
[youtubevid id='n-M41MYVODg']
- Сохраните изменение.
Теперь если просмотреть то, что мы только что создали на сайте то мы сможем увидеть видеоплеер с видео с YouTube.
Как это работает...
Если шорткод используется с параметрами, то эти параметры, передаются в функцию-обработчик как массив пар ключ-значение ($atts). С помощью комбинации стандартной PHP функции extract и WordPress функции: shortcode_atts, мы в итоге извлекаем данные из массива. В этом конкретном примере мы используем только одну переменную $id, но на самом деле параметров шорткода может быть сколько угодно.
После того, как мы получили ID видео внутри функции ($id), мы можем собрать необходимый HTML код, который будет вставлять и отображать выбранный видео-файл в видео плеере в теле поста или страницы. Незабываем вернуть результат работы функции при помощи инструкции return.
Предыдущие статьи этого цикла:
- WordPress: С чего начинаются плагины
- WordPress: Добавление контента в тег head страниц
- WordPress: Функции для работы с путями
- WordPress: Использование хуков фильтров
- WordPress: Добавление содержимого в каждый пост при помощи фильтров
- WordPress: Изменение содержимого страницы при помощи фильтров
- Отлов ошибок при разработке плагинов
- Wordpress: Простые шорткоды