Статьи

Как создать свой собственный шорткод WordPress

WordPress обычно не позволяет добавлять код PHP на страницы или посты. Это к лучшему; Вы не хотите, чтобы клиенты открывали для себя всю силу функции unlink ! Однако вы можете создавать пользовательские функции, которые выполняются, когда в тексте записи встречается шорткод.

Простые шорткоды

Функции шорткода могут быть добавлены в код плагина или в файл functions.php вашей темы. Если это последнее, я бы рекомендовал создать отдельный файл shortcodes.php, а затем добавить include('shortcodes.php'); к functions.php.

Вот простой пример «Hello World»:

 function HelloWorldShortcode() { return '<p>Hello World!</p>'; } add_shortcode('helloworld', 'HelloWorldShortcode'); 

Введите [helloworld] где-нибудь на странице или в сообщении, чтобы вывести результат функции HelloWorldShortcode ().

Параметризованные шорткоды

Следующая функция шорткода генерирует карту сайта иерархии страниц. Можно передать три необязательных параметра: заголовок, идентификатор результирующего списка ul и значение глубины, указывающее количество уровней навигации по страницам.

 function GenerateSitemap($params = array()) { // default parameters extract(shortcode_atts(array( 'title' => 'Site map', 'id' => 'sitemap', 'depth' => 2 ), $params)); // create sitemap $sitemap = wp_list_pages("title_li=&depth=$depth&sort_column=menu_order&echo=0"); if ($sitemap != '') { $sitemap = ($title == '' ? '' : "<h2>$title</h2>") . '<ul' . ($id == '' ? '' : " id="$id"") . ">$sitemap</ul>"; } return $sitemap; } add_shortcode('sitemap', 'GenerateSitemap'); 

Настраиваемую карту сайта можно добавить на любую страницу, используя [sitemap id='deepmap',depth=5] например [sitemap id='deepmap',depth=5] .

BB код шорткод

Последний способ добавления коротких кодов использует [bbcode] синтаксис BB-кода [/ bbcode]:

 function StyleText($params, $content = null) { // default parameters extract(shortcode_atts(array( 'style' => '' ), $params)); return '<span' . ($style == '' ? '' : " style="$style"") . ">$content</span>"; } add_shortcode('format','StyleText'); 

Эта функция позволяет автору встраивать стили CSS в свою статью, например [format style="font-size:1.5em;color:#f00;">Important![/format] . Возможно, это не такая хорошая идея! …

Вы видели какое-нибудь интересное использование коротких кодов в проектах WordPress?