Порой необходимо вывести в определённое место поста какой-нибудь вставки, например галерею или рекламу. Для этого можно использовать шорткоды, добавив прямо в текст статьи вставку подобного вида:
[shortcode param1="123" param2="abc"]
Таким образом мы можем вызвать заранее определённую функцию, которая будет прикреплена к названию шорткода. Название может быть любое, в данном случае было выбрано «shortcode». Так же в данном случае в функцию будут переданы ещё два параметра: param1 и param2. Однако указывать параметры не обязательно, если ваша функция их не использует.
Теперь нужно написать нашу функцию и привязать её к соответствующему шорткоду.
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, иначе вся информация будет выводится в самом начале страницы, а не там, где был вставлен вызов шорткода.