Плагин gs_shortcodes для системы управления контентом GetSimple CMS включает в себя набор шорткодов, доступных для использования сразу после установки, а также шорткоды, служащие для демонстрации и расширения возможностей использования плагина. Однако на практике, при работе над проектом веб-сайта, возникает потребность в дополнительных шорткодах, позволяющих реализовать требуемые функциональные возможности разрабатываемого веб-сайта. Именно поэтому разработчику необходимо понимать принцип создания собственных шорткодов.
В целом процесс создания собственных шорткодов может быть разделён на два этапа:
- написание кода, выполняющего требуемую задачу;
- выбор варианта подключения кода для регистрации и использования шорткода в системе.
Так для создания собственного шорткода необходимо выбрать имя шорткода, написать функцию, вызываемую шорткодом и произвести регистрацию шорткода в системе.
При написании функции, вызываемой шорткодом, следует предусмотреть обработку передаваемых ей параметров:
- Ассоциативный массив параметров и их значений, переданных в вызове шорткода;
- Строка с содержанием шорткода.
Для регистрации шорткода в системе используется функция плагина gs_shortcodes add_shortcode
, принимающая три строковых параметра:
- Название шорткода, которое будет использоваться для его вызова;
- Имя функции, вызываемой шорткодом;
- Описание вызова шорткода, которое будет выводиться в списке зарегистрированных в системе шорткодов, а также использоваться при вставке шорткода в редакторе содержания страницы.
В качестве наглядного примера можно рассмотреть создание собственного шорткода colorize, позволяющего задать при помощи параметра color цвет текста, переданного в содержании шорткода.
/**
* Функция, вызываемая шорткодом colorize
*
* @param array $attr
* @param string $content Содержание шорткода
*
* @return string
*/
function shortcode_colorize($attr, $content) {
if ($content && isset($attr['color'])) {
$content = '<span style="color: '.$attr['color'].'">'.$content.'</span>';
}
return $content;
}
# Регистрация шорткода colorize в системе
add_shortcode('colorize', 'shortcode_colorize', '[colorize color="" ]content[/colorize]');
Подключение кода шорткодов может быть выполнено следующими способами:
- Внесение изменений в основной файл шорткодов плагина gs_shortcodes
/plugins/gs_shortcodes/shortcodes.php
; - Подключение шорткодов из файла
shortcodes.php
темы оформления; - Разработка плагинов.
Для выбора наиболее подходящего, в зависимости от стоящей задачи, необходимо рассмотреть отдельно каждый из перечисленных способов. При внесении изменений в основной файл шорткодов плагина gs_shortcodes, код собственных шорткодов может быть добавлен непосредственно, либо подключён в основной файл из внешнего файла. Однако при обновлении плагина gs_shortcodes произойдёт перезапись файла /plugins/gs_shortcodes/shortcodes.php
и код добавленных шорткодов будет потерян. Поэтому, при использовании описанного способа добавления собственных шорткодов, важно следить за созданием и сохранностью резервных копий веб-сайта. Подключение шорткодов из файла shortcodes.php
темы оформления, следует использовать в случаях необходимости распространения специальных шорткодов, используемых совместно с этой темой оформления. Важно понимать, что добавленные таким способом шорткоды, будут доступны для использования только тогда, когда, содержащая их тема оформления, используется в качестве текущей темы оформления веб-сайта.
Для обхода ограничений, рассмотренных способов добавления собственных шорткодов, а также в случае разработки сложных шорткодов, требующих написания значительного объёма кода и подключения дополнительных PHP библиотек, может быть рекомендовано создание собственных плагинов, использующих функции плагина gs_shortcodes. Кроме того, использование плагина gs_shortcodes может значительно облегчить разработку собственных комплексных плагинов, требующих встраивания их вызовов непосредственно в содержание страницы.
Использование каждого из рассмотренных способов добавления шорткодов, обеспечивает их вывод в списке зарегистрированных в системе шорткодов, а также делает их доступными для вставки в редакторе содержания страницы.