Wordpress: Парные шорткоды

Wordpress: Парные шорткоды

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

Как пример в этом рецепте мы создадим парный шорткод, который будет работать следующим образом: если на страницу зайдет зарегистрированный пользователь, то он увидит содержимое страницы в полном объеме, а если на страницу зайдет гость, то та часть текста, которая будет заключена в наш парный шорткод будет от пользователя скрыта. В данном случае мы могли бы реализовать задумку и при помощи filter хука, но с шорткодом мы имеем преимущество: нам не надо просматривать содержимое всей страницы.

  1. Перейдите в директорию плагинов движка WordPress: wp-content/plugins
  2. Создайте там новую директорию и назовите её private-item-text
  3. Зайдите внутрь директории и создайте новый текстовый файл. Назовите его private-item-text.php
  4. Откройте ваш новый файл в текстовом редакторе и добавьте следующий код:
        <?php
        /*
            Plugin Name:    Private Item Text
            Plugin URI:
            Description:    Парный шорткод "Приватный текст"
            Version:        1.0
            Author:         Самый лучший автор
            Author URI:     http://xxxxxxx.xx/
            License:        GPLv2
        */
    
  5. Добавьте следующую строку кода, создающую новый шорткод и имя функции, которая будет вызвана, когда шорткод буден обнаружен на странице:
    add_shortcode('private', 'pit_private_shortcode');
    
  6. Далее добавим следующий код, реализующий функцию-обработчик:
    function pit_private_shortcode($atts, $content = null)
    {
        if (is_user_logged_in()) {
            return '<div class="private">' . $content . '</div>';
        }
    
        return '<strong>IT'S PRIVATE AREA!</strong>';
    }
    
  7. Сохраняем файл
  8. Идем в админку нашего сайта во вкладку Plugins
  9. Находим наш плагин в списке и активируем его
  10. Создайте новую страницу или пост и разместите в текстовом редакторе какой-нибудь контент, окруженный тегами [private] и [/private]
  11. Сохраните изменения.

Теперь если просмотреть то, что мы только что создали на сайте то мы сможем увидеть весь контент без изменений, но если мы разлогинимся и вновь взглянем на страницу то больше контента мы не увидим, а увидим надпись IT'S PRIVATE AREA!

Как это работает...

Подобно filter хукам, функция-обработчик парного шорткода получает первым параметром массив переданных атрибутов шорткода, как это было показано в прошлом рецепте. В добавок к этому мы получаем так же второй параметр, содержащий копию текста, которого окружает шорткод. Это дает возможность функции-обработчику вернуть этот текст с дополнительным HTML кодом, или полностью заменить его новым содержимым. Так же, мы использовали функцию WordPress: is_user_logged_in, чтобы определить, зарегистрирован ли текущий пользователь в системе или нет. На основе результата этого запроса, мы определяем, надо ли показывать содержимое шорткода или нет.

Предыдущие статьи этого цикла:

  1. WordPress: С чего начинаются плагины
  2. WordPress: Добавление контента в тег head страниц
  3. WordPress: Функции для работы с путями
  4. WordPress: Использование хуков фильтров
  5. WordPress: Добавление содержимого в каждый пост при помощи фильтров
  6. WordPress: Изменение содержимого страницы при помощи фильтров
  7. Отлов ошибок при разработке плагинов
  8. Wordpress: Простые шорткоды
  9. WordPress: Шорткоды с параметрами

Добавить комментарий


Защитный код
Обновить



Кто на сайте
Сейчас 183 гостей онлайн