Шорткоды (shortcode)

Статья требует знания PHP

Это короткие коды, похожие на bb-код и обрабатываются в тексте записи (или произвольном тексте).

Рассмотрим простой пример создания шорткода для вывода SPAN с произвольным css-классом. Шорткод будет вида:

[class t-red]text page[/class]
или
[class=t-red]text page[/class]

что в итоге преобразуется в

<span class="t-red">text page</span>

Отдельный файл шорткода

Удобней всего вынести код шорткода отдельно, например в custom/shortcode/sh.php и подключать в custom/my-template.php

<?php

if ($fn mso_fe('custom/shortcode/sh.php')) require_once($fn);
...

Регистрация шорткода

Обработку шорткода выполняет собственная произвольная функция, которую нужно зарегистрировать с помощью функции mso_shortcode_add() в файле шорткода.

<?php

mso_shortcode_add
('class''my_sh');

где class — и есть шорткод, а my_sh — функция обработчик.

Функция шорткода

Функция my_sh имеет единственный параметр, в котором будет массив атрибутов. В простом варианте использования массив содержит все атрибуты шорткода, включая текст.

<?php

function my_sh($attr)
{
    return  
'<span class="' $attr[1] . '">' $attr[2] . '</span>';
}
При создании шорткода желательно не использовать аналогичные варианты существующих BB-кодов.

Шорткод с множеством параметров

Шорткод может содержать множество параметров, например:

[lbox mini.jpg title="Титул" class="класс"]full.jpg[/lbox]

В этом случае функция должна самостоятельно выполнить парсинг атрибутов. Для этого можно воспользоваться вспомогательной функцией mso_shortcode_parse()

<?php

function my_lbox($attr)
{
    
$all mso_shortcode_parse($attr, array('class'=>'''title'=>''));
    
pr($all);
    
/*
    Array
    (
        [class] => класс
        [title] => Титул
        [content] => full.jpg
        [0] => mini.jpg
    )
    */    
    
...
}

Выполнение шорткода в произвольном тексте

Для того, чтобы обработать текст с использованием шорткода, используется функция mso_shortcode('шорткод', 'имя функции шорткода', 'текст').

Learn more about buy Instagram likes check popular website Friendlylikes
Find more information why people are used to buy Instagram likes for photos and videos these days.