Всем знаком часто используемый на форумах bbCode? Приведу ещё немного примеров использования WordPress Shortcode API.
<?php function bold_shortcode($atts, $content = null) { return '<b>'.$content.'</b>'; } add_shortcode('b', 'bold_shortcode'); ?>
Считаю пояснения к коду здесь излишними. Код в тексте записи/виджета вида
[b]ВордПресс[/b]
выдаст ВордПресс.
А теперь «обработка» ссылок, например в комментариях:
<?php function url_shortcode( $atts, $content = null ) { extract( shortcode_atts( array( 'link' => $content, ), $atts ) ); return '<a href="'.esc_url($link).'">'.$content.'</a>'; } add_shortcode( 'url', 'url_shortcode' ); ?>
Введя [url link=www.sooource.net]мой сайт[/url]
, вы получите:
<a href="http://www.sooource.net">мой сайт</a>
Также можно написать [url]www.sooource.net[/url]
и увидеть:
<a href="http://www.sooource.net">www.sooource.net</a>
Краткие пояснения к коду:
- extract — импортирует переменные из массива в текущую таблицу символов (подробнее читайте на
php.net . - shortcode_atts — устанавливает для входных параметров значения по умолчанию, если они вдруг не заданы.
- esc_url — отправляет WP ссылку на предварительную обработку. Читаем Codex на WordPress.org.
- $atts и $content, — массив входных параметров и сам контект.
Источник: sooource.net