Руководство разработчика плагинов для WordPress (часть 23) 10 Марта 2018

Руководство разработчика плагинов для WordPress (часть 23)

Базовые шорткоды

Добавление шорткода

Используя АПИ Шорткодов мы можете добавлять ваши собственные шорткоды. Данный процесс involves регистрацию обратного вызова $func шорткода $tag, используя add_shortcode().
<?php
            add_shortcode(
               string $tag,
               callable $func
            );
            

Внутри темы

<?php
            function wporg_shortcode($atts = [], $content = null)
            {
               // do something to $content

               // always return
               return $content;
            }
            add_shortcode("wporg", "wporg_shortcode");
            
[wporg] — ваш новый шорткод. Использование данного шорткода запустит функцию обратного вызова wporg_shortcode.

Внутри плагина

В отличие от темы, плагин запускается на очень раннем этапе загрузочного процесса таким образом, требуя от нас отложить добавление нашего шорткода до тех пор, пока WordPress не будет инициализирован. Мы рекомендуем зацепку Действия init.
<?php
            function wporg_shortcodes_init()
            {
               function wporg_shortcode($atts = [], $content = null)
               {
                   // do something to $content

                   // always return
                   return $content;
               }
               add_shortcode("wporg", "wporg_shortcode");
            }
            add_action("init", "wporg_shortcodes_init");
            

Удаление шорткода

Используя АПИ Шорткодов возможно удалять шорткоды. Данный процесс involves удаление зарегистрированного $tag, используя remove_shortcode().
<?php
            remove_shortcode(
               string $tag
            );
            
Убедитесь в том, что данный шорткод был зарегистрирован прежде чем будет предпринята попытка его удаления. Укажите число с более высоким приоритетом для функции add_action() или зацепки для зацепки Действия, которая запустится позже.

Проверка существования шорткода

Для того, чтобы проверить был ли зарегистрирован шорткод, используйте shortcode_exists().