Создание шорткодов в WordPress

Шорткоды WordPress — это пользовательские функции, которые вы можете вставлять в свои записи с помощью определенного идентификатора, который и называется шорткодом.

В качестве простейшего примера сделаем шорткод, который будет выводить одно слово — shortcode.

Для этого в файле function.php напишем следующее:

Теперь если вставить в запись или на страницу идентификатор [sc], то в результате в этом месте будет выводится слово shortcode. В теле функции (в нашем случае myshortcode) можно написать любой исполняемый код, и он будет выполняться в том месте, где вы его вставите.

Вы можете использовать в функции шорткода 2 параметра:

  • $atts — ассоциативный массив атрибутов;
  • $content — содержимое шорткода (используется в случае, когда шорткод представлен в виде окружающих тегов).

Рассмотрим сначала второй параметр — $content. Этот параметр применяется, когда мы используем окружающие теги шорткода, то есть конструкцию вида:

Перепишем для данного случая функцию myshortcode следующим образом:

Параметр $content в данном случае примет значение, заключенное между тегами [sc] и на странице появится надпись «Shortcode».

Первый параметр $atts позволяет передать массив атрибутов. Для примера создадим шорткод, который будет выводить на экран определенное нами слово указанное число раз.

Это будет выглядеть так:

В данном случае слово shortcode будет выводиться 5 раз, как задано атрибутом num.

Функция для обработки шорткода будет выглядеть так:

Функция shortcode_atts служит для заполнения пропущенных атрибутов шорткода значениями по умолчанию. То есть если в нашем случае вы укажите атрибут num=’5′, то $a[‘num’] в функции myshortcode примет значение 5. Если этот атрибут не будет указан, то его значение по умолчанию в нашем случае будет равно 1.

Если вы хотите вывести шорткод (shortcode) прямо в коде php вашего шаблона, то нужно воспользоваться функцией Вордпресс — do_shortcode.

Выглядит это так (этот код нужно вставить в нужное место темы):

 

Оцените статью
Делаем сайт своими руками
Добавить комментарии