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?