Шорткоды WordPress — это пользовательские функции, которые вы можете вставлять в свои записи с помощью определенного идентификатора, который и называется шорткодом.
В качестве простейшего примера сделаем шорткод, который будет выводить одно слово — shortcode.
Для этого в файле function.php напишем следующее:
1 2 3 4 |
function myshortcode() { return 'shortcode'; } add_shortcode('sc', 'myshortcode'); |
Теперь если вставить в запись или на страницу идентификатор [sc], то в результате в этом месте будет выводится слово shortcode. В теле функции (в нашем случае myshortcode) можно написать любой исполняемый код, и он будет выполняться в том месте, где вы его вставите.
Вы можете использовать в функции шорткода 2 параметра:
- $atts — ассоциативный массив атрибутов;
- $content — содержимое шорткода (используется в случае, когда шорткод представлен в виде окружающих тегов).
Рассмотрим сначала второй параметр — $content. Этот параметр применяется, когда мы используем окружающие теги шорткода, то есть конструкцию вида:
1 |
[sc]Shortcode[/sc] |
Перепишем для данного случая функцию myshortcode следующим образом:
1 2 3 |
function myshortcode($atts, $content = null) { return $content; } |
Параметр $content в данном случае примет значение, заключенное между тегами [sc] и на странице появится надпись «Shortcode».
Первый параметр $atts позволяет передать массив атрибутов. Для примера создадим шорткод, который будет выводить на экран определенное нами слово указанное число раз.
Это будет выглядеть так:
1 |
[sc num="5"]shortcode[/sc] |
В данном случае слово shortcode будет выводиться 5 раз, как задано атрибутом num.
Функция для обработки шорткода будет выглядеть так:
1 2 3 4 5 6 7 8 |
function myshortcode($atts, $content = null) { $a = shortcode_atts( array( 'num' => 1 ), $atts ); $cod=''; for ($i=1; $i<=$a['num']; $i++) $cod .= $content; return $cod; } |
Функция shortcode_atts служит для заполнения пропущенных атрибутов шорткода значениями по умолчанию. То есть если в нашем случае вы укажите атрибут num=’5′, то $a[‘num’] в функции myshortcode примет значение 5. Если этот атрибут не будет указан, то его значение по умолчанию в нашем случае будет равно 1.
Если вы хотите вывести шорткод (shortcode) прямо в коде php вашего шаблона, то нужно воспользоваться функцией Вордпресс — do_shortcode.
Выглядит это так (этот код нужно вставить в нужное место темы):
1 |
<?php echo do_shortcode('[shortcode]'); ?> |