Шорткоды в WordPress
- 02.03.2020 11:37
- 0
- 583
Шорткоды в Вордпресс – это специальные короткие обозначения, которые вставляются в текст страницы, и позволяют выводить заданный контент.
К примеру, если Вы делаете таблицу, которая будет повторяться на нескольких страницах сайта (скажем, рейтинг казино), ее можно интегрировать в текст несколькими способами:
- Скопировать и вставить там, где нужно. Но если какие-то данные изменились (например, партнерская ссылка), то менять их придется во всех местах, где вставлена таблица. Это неудобно и долго.
- Прописать таблицу внутри функции шорткода в файле functions.php, и вставлять на страницы с помощью shortcode. В данном случае, если изменятся данные в одной или нескольких ячейках, их нужно будет поменять только в функции. На всех страницах, где есть шорткод таблицы, данные изменятся автоматически.
Как Вы уже поняли, подобная технология дает вебмастеру потрясающие возможности по кастомизации страниц. А главное – позволяет экономить массу времени при вставке или редактировании повторяющихся блоков контента.
Далее мы рассмотрим возможности WordPress Shortcode детальнее, поговорим о стандартных функциях, плагинах и создании собственных блоков.
Стандартные шорткоды Вордпресс
Понятное дело, что в системе WordPress есть уже заготовленные шорткоды, которые позволяют работать с популярными видами контента:
- embed — позволяет встраивать в страницы файлы с ресурсов, которые используют технологию oEmbed. Поддерживаются тексты, видео, аудио, изображения и виджеты. Список ресурсов с поддержкой oEmbed достаточно большой: YouTube, Facebook, Vimeo, Instagram и т.д.
- caption – дает возможность встраивать картинки с описанием. Может иметь параметры id, class для задания стилей и идентификатора картинки. Width и height – для задания размеров изображения. Результатом работы шорткода будет div, в котором находится картинка с указанным id, стилями и размерами, а также параграф с подписью.
- audio – очевидно, что он отвечает за встраивание звуковых файлов в запись.
- video – вставка видео
- playlist – внедрение плейлистов (аудио и видео)
- gallery – наиболее часто используемый шорткод, который дополняет страницу галереей изображений.
Это основные из стандартных шорткодов. Если по каким-то причинам их недостаточно для достижения Ваших целей, то можно создавать дополнительные. Для этого есть два способа:
- Плагины, которые позволят создавать самые разные блоки контента, и вставлять их в страницы сайта.
- Создание собственных шорткодов под задачи определенного проекта. Мой любимый метод.
Плагины шорткодов WordPress
Есть достаточно большое количество плагинов, которые позволяют работать с шорткодами. Ниже даю список самых популярных решений.
Бесплатные
- Shortcodes Ultimate
- WordPress Shortcodes
- Fruitful Shortcodes
- WP Shortcode by MyThemeShop
Платные
- Vision
- Supreme Shortcodes
- Intense
Создание собственных коротких кодов без плагинов.
Это моя любимая часть разговоров о шорткодах в Вордпресс. Ведь здесь вебмастера ограничивает только его фантазия.
Давайте начнем с примера короткого кода, который будет выводить ссылку на главную страницу сайта:
function true_glavnaya_func( $atts ){
return site_url();
}
add_shortcode( ‘glavnaya’, ‘true_ glavnaya _func’ );
Данный код нужно написать в конце файла functions.php. Теперь при добавлении в запись шорткода [glavnaya], в этом месте будем видеть ссылку на главную страницу нашего сайта. Но пока что это выглядит некрасиво. Нужно добавить параметров и оформить все красиво:
function true_glavnaya_external( $atts ) {
$params = shortcode_atts( array(
‘anchor’ => Главная страница, // параметр 1
‘url’ => ‘https://bigaff.ru/‘, // параметр 2
), $atts );
return «<a href='{$params[‘url’]}’ target=’_blank’>{$params[‘anchor’]}</a>»;
}
add_shortcode( ‘glavnaya’, ‘true_glavnaya_external’ );
Так лучше. Теперь ссылка будет выводиться с анкором. Теперь это – настраиваемый модуль сайта, в котором мы можем установить любой анкор и ссылку. А если добавить пару строк стилей, получится отличная кнопка.
Такой же подход можно реализовать для простановки партнерских ссылок, которые часто меняются. Таким образом, при смене афф-ссылки, можно за пару секунд поменять ее на новую на всех страницах сайта, где был внедрен наш шорткод.
С помощью подобной функции я создал себе короткие коды для своих сайтов о казино:
- Кнопки перехода на сайт казино
- Таблицы рейтингов
Вы же можете делать то, что нужно конкретно для Вашего проекта.
Полезные советы
- Шорткоды можно применять и в сайдбаре, встраивая их в виджеты. Для этого нужно активировать такую возможность в файле functions.php:
add_filter('widget_text', 'do_shortcode');
- Короткие коды можно встраивать также и в шаблоны сайтов. Делается это вставкой в нужном месте следующего кода:
echo do_shortcode( '[glavnaya]' );
- Можно создавать короткие коды, вставка которых будет реализована с помощью кнопки в редакторе поста. Также можно добавлять кнопками возможность управлять параметрами шорткодов. Это предоставляет нам вообще безграничные возможности по кастомизации постов, делая их предельно полезными для пользователей.
Не так давно я нашел код, который позволяет ограничить доступ к контенту в зависимости от наличия регистрации у пользователя:
function pr_shortcode_access($attrs, $content = null){
// Преобразуем элементы массива $attrs в переменные. Роль по умолчанию - Администратор
extract(shortcode_atts(array(
‘role’ =&amp;gt; ‘administrator’
),$attrs));
// Если переменная $content пустая, ничего не возвращаем и прерываем выполнение шорткода
if(empty($content))
return;
// Если залогиненый пользователь может изменять настройки сайта, т.е. является администратором,
// нет необходимости производить дальнейшую проверку. Администратор должен видеть все, поэтому
// просто выводим содержимое переменной $content
if(current_user_can (‘manage_options’))
return $content;
// Для всех остальных пользователей доступ по умолчанию запрещен, он будет разрешен если
// все проверки будут пройдены.
$access = false;
// Преобразуем переменную роль в массив. Это позволит нам открывать доступ к контенту сразу
// для нескольких ролей (перечисленных через запятую) одновременно.
$roles = explode(‘,’, $role);
// Если пользователь не залогинен и гостям разрешено видеть контент — разрешаем доступ
if(!is_user_logged_in() &amp;amp;&amp;amp; in_array(‘guest’, $roles)){
$access = true;
}
else {
// Теперь необходимо узнать роль текущего пользователя
global $current_user;
// Т.к. ролей у пользователя может быть несколько, они находятся в массиве
$user_roles = $current_user-$roles;
// Теперь для каждой роли, указанной в шорткоде проведем проверку
foreach($roles as $role){
// Если в массиве ролей данного пользователя есть эта роль — разрешаем доступ
if(in_array($role, $user_roles))
$access = true;
}
}
// Если доступ разрешен, выводим содержимое переменной $content, т.е. то, что находится внутри
// тегов нашего шорткода
if($access)
return $content;
}
add_shortcode(‘access’, ‘pr_shortcode_access’);
Вставка в пост производится следующим методом:
Фактически, это позволяет увеличить базу подписчиков своего блога или сайта, выложив классный контент и ограничив к нему доступ пользователям, которые не подписаны на Ваш сайт.