Создание shortcode в WordPress

Ромчик
3

Доброго времени суток. В данной статье мы поговорим об одной замечательной особенности WordPress — shortcode, или короткие коды. Что такое shortcode? Это некий тег, за которым мы можем закрепить различные действия. Например, в конце каждого поста Вы добавляете подпись “С уважением, Роман”. Вы можете не писать эту подпись каждый раз, а просто закрепить её за тегом [author]. Теперь в конце поста пользователю вместо [author] будет отображен текст “С уважением, Роман”. Чтобы понять основу работы shortcode в WordPress, давайте создадим shortcode, который будет обрамленный в него текст помещать в тег <span> c class=”example”. Итак, задача поставлена. Давайте приступим к её решению…

Мы хотим, чтобы во время редактирования какой-нибудь статьи мы могли бы кусок обрамить в тег shortcode, например [span][/span], а во время отображения html кода этот кусок текста заключился бы в <span class=”example”></span>.
Данная возможность появилась еще в WordPress 2.5. Но мало кто пользуется короткими кодами, хотя это очень удобный способ для вставки различных блоков в контент.
Итак, давайте познакомимся с Shortcode API.
Вообще обработчик shortcode очень похож на фильтры WordPress: он принимает параметры и возвращает результат.
Для регистрации shortcode используется функция:

add_shortcode(‘my_shortcode’,’function’);

где my_shortcode — это Ваш корткий код,  в нашем случае это span; function — это функция, которая будет исполнена, если встретится данный shortcode. Для нашей задачи код обработчика shortcode будет иметь следующий вид:

add_shortcode(‘span’, ‘add_tag’);

Теперь нам надо описать функцию add_tag:

function add_tag($content=null){
    return ‘<span class="example">’.$content.’</span>’
}

Думаю, не надо описывать, что делает данная функция. В результате у нас должно получиться следующее:

function add_tag($content=null){
    return ‘<span class="example">’.$content.’</span>’
}
add_shortcode(‘span’, ‘add_tag’);

Помещаем этот код в файл function.php действующей темы. Теперь при написании поста мы можем использовать: [span]Вот у нас и получился свой Shortcode[/span]. Текст, заключенный в теги [span], будет помещен в тег <span class=”example”>Вот у нас и получился свой Shortcode</span>.
Теперь несколько замечаний:

  1. Shortcode должен состоять из символов нижнего регистра.
  2. При обновлении темы данный shortcode пропадет.
  3. В shortcode мы можем передавать параметры.
  4. В shortcode мы можем вызвать еще один shortcode функцией do_shortcode(‘название ’)

Вот, в принципе, и все.
А вел я это к чему? Я использую shortcode для вставки ссылок с rel=”nofollow”. Давайте расскажу, как?
В файле function.php добавим следующий код:

function add_nofollow($content= null){
    $link = explode("href", $content);
    return $link[0].' rel="nofollow" href'.$link[1];
}
add_shortcode('nofollow', 'add_nofollow');

Теперь обрамляю ссылку [nofollow] <a href = “link” >link</a>[/nofollow].
На выходе я получаю следующий html код : <a rel=”nofollow” href=”link”>link</a>
Как видите, очень удобно и красиво. А на этом все.

Понравилась статья? Поделись с друзьями.
  • Add to favorites
  • Добавить ВКонтакте заметку об этой странице
  • Twitter
  • Facebook
  • Мой Мир
  • LiveJournal
  • Одноклассники
  • Блог Я.ру
  • MySpace
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • Reddit
  • StumbleUpon
  • Technorati
  • del.icio.us
  • БобрДобр
  • LinkedIn
  • Memori.ru
  • Сто закладок
  • Blogger

  • WPIXEL - 22.10.2012 в 12:06

    Последний шорткод в тему! отличная замена плагину wp-noref.

  • Плагин Easy Nofollow | Все о WEB программировании - 22.10.2012 в 20:37

    […] времени суток. В прошлой статье мы рассмотрели создание shortcode в WordPress. Мы создали короткий код [nofollow], который добавляет к […]

  • Как сделать цитаты в WordPress, которые можно сразу процитировать в facebook и twitter | Все о WEB программировании - 10.07.2013 в 07:53

    […] shortcode Вы можете прочитать у меня на блоге в статье «Создание shortcode в WordPress». И текст заключенный в данные теги будет цитатой, […]

  • ©2012-2017 По всем вопросам обращайтесь через форму обратной связи

    Яндекс.Метрика