как создавать свои шорткоды для вордпресс

Как создавать свои личные шорткоды для WordPress

Автор: в Wordpress, Уроки Дата: Июнь 7, 2013

В версии 2.5 WordPress были представлены шорткоды (от англ. shortcodes), которые мы используем в тот или иной момент. Как правило, они поставляются в комплекте с плагинами, или даже темами (themes), и основной их задачей является предоставление информации, запрограммированой в этом шорткоде. Это может быть простое предложение или массивная функция PHP, все зависит от того, что вы поручили делать WordPress’у.

Комплектные шорткоды замечательны и значительно ускоряют процесс, но разве не лучше иметь свои личные шорткоды?
В этой статье мы расcкажем как создаются простые шорткоды для WordPress, которые помогут вам в создание любой функциональности, которая вам нравится.

Простой шорткод

API шорткода работает очень просто: сначала нужно создать функцию обратного вызова, которая будет работать в любое время, когда используется шорткод; затем вам нужно присоеденить эту функцию к определенному шорткоду, делая его готовым к использованию. Код зачастую помещаются в файл functions.php, но если вы планируете иметь много шорткодов, тогда имеет смысл создать отдельный файл и включить этот файл в functions.php.
В нашем первом примере мы создадим шорткод, который будет выдавать текст “Lorem Ipsum”… каждый раз, когда мы печатаем [Lorem] в редакторе. Для начала нам нужно создать функцию обратного вызова, которая будет возвращать “Lorem Ipsum”:

function lorem_function() {
  return 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec nec nulla vitae lacus mattis volutpat eu at sapien. Nunc interdum congue libero, quis laoreet elit sagittis ut. Pellentesque lacus erat, dictum condimentum pharetra vel, malesuada volutpat risus. Nunc sit amet risus dolor. Etiam posuere tellus nisl. Integer lorem ligula, tempor eu laoreet ac, eleifend quis diam. Proin cursus, nibh eu vehicula varius, lacus elit eleifend elit, eget commodo ante felis at neque. Integer sit amet justo sed elit porta convallis a at metus. Suspendisse molestie turpis pulvinar nisl tincidunt quis fringilla enim lobortis. Curabitur placerat quam ac sem venenatis blandit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam sed ligula nisl. Nam ullamcorper elit id magna hendrerit sit amet dignissim elit sodales. Aenean accumsan consectetur rutrum.';
}

Далее нам нужно добавить шорткод к WordPress используя add_shortcode функцию в нашем файле functions.php или файле, который включается в него. Эта функция добавляет шорткод, а также связывает ее с функцией, которую мы только что создали. add_shortcode принимает только два аргумента, первый из которых имя, которое мы хотим дать шорткоду(то, что мы будем вводить в квадратных скобках), а второй из которых является функция, которую мы хотим приложить к этому шорткоду:

add_shortcode('lorem', 'lorem_function');

И это все, что нужно для создания простого шорткода в WordPress! Легко, не правда ли?! Далее усложняем задачу.

Добавление параметров

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

[picture width="500" height="500"]

Когда WordPress сталкивается с таким, нам нужна будет функция, которая будет вставлять изображение. Ей нужно будет прочитать атрибуты ширины и высоты, но на всякий случай мы также предоставим значения по умолчанию, так чтобы она могла быть использована без атрибутов.  Так как у нас может не быть доступного изображения, мы собираемся использовать lorempixel.com сервис, чтобы получить случайное изображение.

Для начала нам нужно создать функцию:

function random_picture($atts) {
   extract(shortcode_atts(array(
      'width' => 400,
      'height' => 200,
   ), $atts));
return '<img src="http://lorempixel.com/'. $width . '/'. $height . '" />';
}

Мы назвали эту функцию random_picture, и так как этот шорткод может принимать аргументы, мы дали ему $ATTS параметр. Для того, чтобы использовать атрибуты нам нужны две функции: shortcode_atts, которая является функцией WordPress, которая сочетает наши атрибуты с известными атрибутами и заполняет по умолчанию, когда это необходимо; а также функции PHP extract, которая извлекает те атрибуты, которые мы задали для нашего шорткода. Наконец, функция возвращает значение, которые мы хотим, в этом случае код для размещения нашего изображения в сочетании с переменными ширини и высоты.
Единственное, что осталось сделать, это зарегистрировать шорткод:

add_shortcode('picture', 'random_picture');

Шорткод готов, теперь когда мы печатаем [picture], нам будет выдаваться случайное изображение 400 на 200, а если мы будем использовать атрибуты, то тогда мы сможем создать картинку любого размера.

Автор Юлия Микута

Главный редактор портала WebDesignMagazine.ru. Пишу статьи для веб-сайта, занимаюсь продвижением портала в социальных сетях. Если хотите стать автором на нашем сайте - напишите нам об этом и мы рассмотрим ваше предложение.