понедельник, 9 февраля 2009 г.

ShortCode

WordPress©
Очень часто приходится вживую оформлять статьи, чтоб они получались и интересными и наглядными, и, зачастую очень не хватает инструментария в современных стстемах. Но вот к нам пришел WordPress и он фактически дал нам много чего интересного для подобной практики. Однако не надо забывать, что Он поставляется клиенту в минимально настроеном варианте и очень часто приходится самому - либо его настраивать под себя используя различные конструктивы и плагины из репозитария, а зачастую зачучиврукава - самому впрягаться в воз - чтобы создавать и плагиныи конструктив
Одним из таких инструментов - это ыключенияв текст стать своих собственных тэгов или, на языке WP - ShortCode

Что это такое?


В WP встроен специальный механизм замещения неких конструкций на обработку по свободному сценарию перед публикацией любого фрагмента статьи. Дляэтого достаточно в текст статьи внести следующую конструкцию
[shortcode [{attr="index"}]] content [/shortcode] Чтобы обработать такую конструкцию, превратив ее в типичный HTML, но по сценарию нам необходимому, нужно в текст, (а конкретно это делается лучше всего в плагинах, или на худой конец в файле function.php - темы), вставить следующий код
add_shortcode('mytag','fun_my_tag');
и соответственно прописать саму функцию в виде
function fun_my_tag($attr,$content){
//////
return ...что-то обработаное
}
Таким образом установив обработку, мы заставим движок WP из текста вырывать конструктивы, обрамленные тэгами [mytag] и передавать в поток паблики обработаное функцией связаной с нашим шорт-кодом

Что это нам дает?


На первый взгляд подоюное включение в текст неких условностей не представляется очевидным. Однако это только на первый взгляд Зачастую приходится многократно использовать типичные конструкции в различных вариантах. И каждый раз приходится повторять одни и те же приемы в разных местах, делая весь процесс написания сущности в утомительное занятие. А вот включив специаллизированый шорт-код с обработкой по некоторому заранее созданому сценарию шаблону,мы таким образом создаем предопределенное макро-шаблон, котрый позволит в будущем основные училия текста направить на аспекты истины, а не растекаться в оформительстве типа мысею по древу.

Аргументы функции обработки


Формат любой функции всегда имеет один и тот же формат.
$attr - представляет собой массив суть которого массив атрибутов шорт-кода, причем индексы аргумента в точь-точь повторяют имена атрибутов, а содержимое - их значения. Мыдолжны понимать, что сам шорт код может передаваться и без атрибутов и без контента. В этом случае соответственно отсутвует как и значение, так и индексируемая переменная
$content - суть этой величины заключена между тэгами шор-кода, и в принципе может отсутствовать. Тут сразу возникает резонный вопрос об том как записыватьв теле статьи подобный шорт-код, если изначально не предполагается ни какого контента. Для этого предусмотрена простая форма констатации шорт-кода в виде [shortcode {attr="dat"} /]-т.е достаточно использовать прямой слэш перед закрывающей квадратной скобкой, и тем самым указывая движку на конец всей конструкции без приведения явного и типичного (в виде ВВ-кода) обрамленя шорт-код тэгов