Содержание
Задача. Необходимо зарегистрировать шорткод, который выводил бы нужный контент? потом вставить в шаблон темы, проверив перед вставкой.
Регистрация пользовательского шорткода
Решение. Свой шорткод в WordPress можно зарегистрировать (добавить) с помощью функции add_shortcode()
в файле темы – function.php
. В аргументах функции указывается имя шорткода и функция, которая будет возвращать необходимый нам контент.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
/* регистрация шорткода [name_shortcode] для вывода какого-то текста обернутого в div с классом */ function function_shortcode( ){ return '<div class="my-class">Текст</div>'; } add_shortcode( 'name_shortcode', 'function_shortcode' ); /* Результат: Вставленный шорткод [name_shortcode] выведет на странице "Текст" обернутый в div с классом "my-class" */ |
Теперь шорткод можно вывести через редактор постов, страниц и т.п. как [name_shortcode]
или если в шаблоне темы, то так — <?php echo do_shortcode('[name_shortcode]'); ?>
Более сложные случаи можно посмотреть в источнике.
Вывод шорткода
Решение. Когда нужно вставить щорткод в шаблон темы используем функцию do_shortcode()
— Код №2:
1 2 3 4 5 6 7 |
## Вставка шорткода echo do_shortcode('[my-shortcode]'); echo do_shortcode('[my-shortcode id="123"]'); |
Проверка шорткода перед выводом
Решение. Иногда следует проверить существует ли шорткод, который необходимо вывести. Это можно сделать с помощью функции shortcode_exists()
— Код №3:
1 2 3 4 5 6 7 8 |
## Проверка существует ли шорткод if ( shortcode_exists( 'gallery' ) ) { // Шоткод [gallery] зарегистрирован } |
Вывод информации из файла темы
Если нужно с помощью шорткода вывести какой-то html-код из файла в текущей теме, то можно воспользоваться Кодом №4:
1 2 3 4 5 6 7 8 9 10 11 |
function qfurs_func_1 ( $attr, $content = null ) { ob_start(); include_once 'my-file.php'; return ob_get_clean(); } add_shortcode ( 'qfurs_shortcode_1', 'qfurs_func_1' ); |