Порой необходимо вывести в определённое место поста какой-нибудь вставки, например галерею или рекламу. Для этого можно использовать шорткоды, добавив прямо в текст статьи вставку подобного вида:
1 |
[shortcode param1="123" param2="abc"] |
Таким образом мы можем вызвать заранее определённую функцию, которая будет прикреплена к названию шорткода. Название может быть любое, в данном случае было выбрано "shortcode". Так же в данном случае в функцию будут переданы ещё два параметра: param1 и param2. Однако указывать параметры не обязательно, если ваша функция их не использует.
Теперь нужно написать нашу функцию и привязать её к соответствующему шорткоду.
1 2 3 4 5 6 7 8 9 |
function shortcode_func( $atributs ) { extract( shortcode_atts( array( 'param1' => 'значение по-умолчанию1', 'param2' => 'значение по-умолчанию2', ), $atributs ) ); return "<img src='$param1' alt='$param2' />"; } add_shortcode( 'shortcode', 'shortcode_func' ); |
С помощью специальной функции add_shortcode мы привязали нашу функцию shortcode_func к выводу шорткода shortcode. В функции сделана распаковка входных данных $atributs в отдельные переменные. Так же для переменных указаны значения по-умолчанию, которые будут использованы, если не указать при добавлении шорткода этих параметров. Если вы не используете параметры при добавлении вообще, то и тогда в самой функции не надо делать распаковку входных параметров.
Ещё важный момент: в функции используйте return для возвращения данных, а не с помощью echo, иначе вся информация будет выводится в самом начале страницы, а не там, где был вставлен вызов шорткода.