
WordPress — одна из самых распространенных систем управления контентом во всем мире. Бесчисленные плагины помогли расширить набор функций бывшего программного обеспечения для ведения блогов, позволяя пользователям создавать широкий спектр различных веб-проектов. Однако, несмотря на колоссальные изменения, которые претерпела платформа для ведения блогов за прошедшие годы, в одном аспекте она и по сей день остается верна своим корням: она по-прежнему остается очень доступной системой, которая подходит для блоггеров, редакторов и других писателей, и этим пользователям не обязательно быть экспертами в HTML и CSS, чтобы успешно распространять свой контент во Всемирной паутине.
Те, кто думает сделать первые шаги на пути к тому, чтобы стать блоггером или журналистом, будут очень хорошо оснащены WordPress. Более того, в 2008 году WordPress выпустил так называемые «шорткоды», которые позволили пользователям добавлять динамические элементы в свои редакционные посты.
- Что такое шорткоды?
- Почему шорткоды WordPress так полезны
- Как создавать собственные шорткоды WordPress
- Создание функции обратного вызова
- Регистрация шорткодов в WordPress
- Определение шорткодов с параметрами
- Использование шорткода WordPress в виджете
- Устранение необходимости отключения шорткодов
- Практические шорткоды для вашего блога
- Добавление кнопки со ссылкой
- Отображение меню WordPress
- Интеграция Google Maps
- Плагины шорткодов WordPress: простой способ
Что такое шорткоды?
Появившиеся в версии 2.5, шорткоды — это типы команд, которые размещаются в тексте и могут быть связаны с PHP-кодом. Они хранятся либо в файле functions.php, либо в отдельном файле данных .php, который затем добавляется в файл functions.php. Всякий раз, когда на сайт вызывается шорткод, WordPress отвечает за выполнение и интерпретацию соответствующего скрипта. В результате вместо кода зритель видит содержимое, сгенерированное функцией PHP. Строго говоря, шорткод служит в качестве вместилища для простых элементов, таких как отрывки текста, или более динамичных типов контента, например, всплывающих окон или галерей изображений.
Внедрение шорткодов для WordPress довольно просто: они добавляются непосредственно в редактор в точном месте, где они должны появиться в записи. Для того чтобы коды WordPress были распознаны как таковые, их необходимо заключить в квадратные скобки [ ]. Один из популярных шорткодов выглядит следующим образом: [текущие посты]. В паре с соответствующей функцией PHP этот код покажет недавно опубликованные посты в том месте, где он был размещен. Дополнительные параметры позволяют сделать шорткоды WordPress более специализированными. Для того чтобы ограничить количество отображаемых опубликованных статей пятью, шорткод можно расширить следующим образом: [current post post = «5»].
Почему шорткоды WordPress так полезны
Есть две причины, по которым шорткоды в WordPress настолько практичны: во-первых, они позволяют пользователям, не имеющим опыта работы с JavaScript или CSS, сделать свои веб-проекты более динамичными. Знание PHP, языка, на котором основаны шорткоды, также не является необходимым для начала работы с этими функциями, поскольку эти шорткоды, включая соответствующие скрипты, уже включены в WordPress по умолчанию. Все они перечислены на официальном сайте CMS и доступны бесплатно. Кроме того, там же пользователи могут найти инструкции по активации и использованию соответствующих шорткодов. Более того, многие пользователи WordPress предлагают свои собственные, самостоятельно разработанные шорткоды WordPress на различных программах, таких как SNIPPLR или WPdevSnippts. Более того, многие плагины и шаблоны предлагают свои собственные шорткоды. Это означает, что вам нужно самостоятельно программировать их только в том случае, если вы хотите изменить существующий скрипт или вам нужен собственный, совершенно новый скрипт.
Еще одним преимуществом шорткодов является то, что они помогают экономить время: если, например, вы хотите неоднократно использовать определенный текстовый отрывок, логотип или другой элемент в своих записях, то размещение соответствующего шорткода сэкономит вам огромное количество времени. Если же вы захотите изменить что-то в элементе без шорткода, то вам придется делать это отдельно для каждой статьи. Корректировка PHP-кода означает, что изменения будут приняты для всех страниц вашего проекта WordPress, содержащих этот шорткод, а значит, сэкономят ваше время.
Как создавать собственные шорткоды WordPress
На данный момент совершенно ясно, что сердцем шорткодов является PHP-скрипт, который автоматически запускается в работу, как только WordPress встречает ранее определенный шорткод. В следующих параграфах мы постараемся дать вам представление о том, как добавить шорткоды в WordPress, как использовать их для вашего проекта и как их можно снова деактивировать. Соответствующий PHP-код может быть добавлен либо в файл functions.php, расположенный в директории используемой темы, либо в отдельный PHP-файл. Чтобы быть уверенным, что ваши собственные шорткоды не исчезнут при следующем обновлении, важно создать дочернюю тему. Это можно сделать всего за несколько простых шагов, как показано в руководстве на форуме поддержки WordPress.
Создание функции обратного вызова
Функция PHP, которая выполняется, как только WordPress регистрирует шорткод, является так называемой функцией обратного вызова. Затем она передается другой функции в качестве параметра и вызывается при определенных условиях с определенными параметрами. Следующий пример функции выполняет поиск в базе данных и генерирует ссылку на ранее созданную запись для шорткода, [current posts]:
function current_posts_function() {
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => 1));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string = '<a href="'.get_permalink().'">'.get_the_title().'</a>';
endwhile;
endif;
wp_reset_query();
return $return_string;
}
Текст, который должен заменить шорткод, находится в переменной $return_string (PHP обозначает все переменные символом $). Функция PHP (current_post_function) возвращает эти переменные с помощью переменной return. Если вместо этого вы неправильно используете команду echo, то элемент, внедренный с помощью шорткода, окажется перед реальным содержимым.
Регистрация шорткодов в WordPress
Вы должны уведомить WordPress, что созданная функция является функцией шорткода, которая должна автоматически выполняться, если на странице, к которой вы обращаетесь, содержится шорткод [current post]. Для этого добавьте следующий код в ваш PHP-файл:
add_shortcode('current posts', 'current_posts_function');
Этим шагом вы определили название шорткода [current posts], который в дальнейшем будет использоваться в редакторе, а также функцию current_posts_function(). Чтобы не возникало конфликтов между шорткодами WordPress, важно выбрать уникальное и понятное имя.
Определение шорткодов с параметрами
Чтобы придать шорткоду WordPress дополнительную гибкость, пользователи имеют возможность добавлять необязательные параметры. Как видно из предыдущего примера, в шорткоде можно определить, сколько записей должно быть отображено. Для этого необходимы еще две функции: функция shortcode_atts(), которая объединяет пользовательские атрибуты шорткода с собственными атрибутами и автоматически выдает стандартные значения. PHP-функция extract() также необходима для извлечения атрибутов шорткода. В случае, если поле аргумента остается свободным, сформулируйте стандартное значение 1 (‘posts’ => 1):
function current_post_fucntion($atts){
extract(shortcode_atts(array(
'posts' => 1,
), $atts));
$return_string = '<ul>';
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string .='<li><ahref="'.get_permalink().'">'.get_the_title().'</a></li>';
endwhile;
endif;
$return_string .= '</ul>';
wp_reset_query();
return $return_string;
}
Так же, как и в случае с HTML-тегом, обрамите нужный заголовок в тексте открывающим и закрывающим шорткодом:
[current posts posts ="5"]Title oft he list of current articles[/current-posts]
Использование шорткода WordPress в виджете
До этого момента в данной статье подробно описывалось, как применять шорткоды в текстовом редакторе WordPress. Однако часто возникают ситуации, когда эти шорткоды могут быть интересны и для виджетов, например, боковых панелей. По умолчанию WordPress не способен распознать шорткоды в этих местах. Но с помощью небольшой строки дополнительного кода в PHP-файле можно легко избавиться от этого неудобного обстоятельства:
add_filter('widget_text', 'do_shortcode');
Этот код сигнализирует WordPress о том, что текстовые элементы в виджетах необходимо проверить на наличие шорткодов.
Устранение необходимости отключения шорткодов
Если вам больше не нужен определенный шорткод WordPress, то у вас есть две возможности для его отключения: лучшим решением является удаление функции обратного вызова из PHP-файла и всех записей кода. Если бы вы удалили только функцию обратного вызова, то WordPress не смог бы распознать шорткод как таковой и представил бы код в середине статьи. Учитывая, что для часто используемых шорткодов этот метод требует больших усилий, для таких случаев есть еще одна возможность: вместо удаления кода и функций PHP функция обратного вызова расширяется через невозвращенную инструкцию и таким образом блокируется:
add_shortcode('current-posts', '__return_false');
Практические шорткоды для вашего блога
После того как вы начали больше понимать структуру шорткодов, а также знаете, как они регистрируются и встраиваются в WordPress, следующие примеры должны помочь вам узнать больше о различных возможностях, которые технология шорткодов может предоставить пользователям.
Добавление кнопки со ссылкой
Для того чтобы добавить в свой проект кнопку-ссылку, разработанную по индивидуальному заказу, вам не нужно делать ничего, кроме как внедрить шорткод со следующей функцией обратного вызова:
function link_button_function( $atts, $content = null ) {
return '<button type="button">'.do_shortcode($content).'</button>';
}
add_shortcode('link-button', 'link_button_function');
Желаемый шрифт для кнопки теперь должен быть помещен между открывающим и закрывающим шорткодом:
[link-button]Click here![/link-button]
Отображение меню WordPress
Следующий код позволяет отобразить выбранное меню из вашего проекта WordPress под текстовой записью:
function menu_function($atts, $content = null) {
extract(
shortcode_atts(
array( 'name' => null, ),
$atts
)
);
return wp_nav_menu(
array(
'menu' => $name,
'echo' => false
)
);
}
add_shortcode('menu', 'menu_function');
Если вы хотите использовать этот код, то просто введите в качестве параметра название соответствующего меню, например:
[menu name="Menu"]
Интеграция Google Maps
Технология шорткодов позволяет интегрировать в ваш проект выдержки из карт Google Maps без предварительной корректировки исходного кода. Соответствующий код для вашего PHP-файла выглядит следующим образом:
function googlemap_function($atts, $content = null) {
extract(shortcode_atts(array(
"width" => '640',
"height" => '480',
"src" => ''
), $atts));
return '<iframe width="'.$width.'" height="'.$height.'" src="'.$src.'&key=YOUR_API_KEY"></iframe>';
}
add_shortcode("googlemap", "googlemap_function");
К шорткоду, который относится к стандартным коротким командам, подключаются параметры height, widght и источник карт Google (src). После этого ваш код при просмотре в редакторе должен выглядеть следующим образом:
[googlemap width="640" height="480" src= https://www.google.com/maps/place/Brandenburger+Tor/@52.5158015,13.3776636,233m?hl=de]
Плагины шорткодов WordPress: простой способ
Для тех, кто не создал собственные шорткоды, а также не хочет внедрять примеры prefab в functions.php (или соответствующий PHP-файл), есть еще одна возможность активировать шорткоды для собственного веб-проекта: на официальной домашней странице WordPress вы можете найти большой выбор плагинов, позволяющих добавить множество различных шорткодов в ваш проект. Расширение last updated shortcode использует одноименный шорткод [lastupdates], который показывает, когда статья или страница была обновлена в последний раз.
Плагин Shortcodes Ultimate Shortcodes Ultimate, содержащий более 50 шорткодов и индивидуальный редактор CSS, предлагает несколько более широкий выбор. Он позволяет пользователям добавлять в WordPress шорткоды для вкладок, кнопок, блоков или слайдеров. Если вы используете плагины Shortcode, то всегда помните о следующем: расширения потребляют вычислительные ресурсы и при чрезмерном использовании будут замедлять работу вашего веб-проекта. Кроме того, чаще всего неизвестно, будут ли эти плагины продолжать разрабатываться или обновляться, и представляют ли они угрозу безопасности.
Наконец, следует упомянуть, что существуют не только плагины, реализующие шорткоды; некоторые также существуют для того, чтобы помочь вам генерировать собственные функции обратного вызова и управлять шорткодами. Для этого полезны следующие три расширения WordPress.
- Shortcoder: пользователи могут генерировать собственные шорткоды в визуальном редакторе и легко маркировать их с помощью HTML и JavaScript сниппетов.
- Shortcodes in Use: этот инструмент администрирования дает вам обзор статей и страниц, на которых вы использовали шорткоды, а также показывает, откуда взялись соответствующие коды (плагины, стандартные или определенные пользователем).
- Shortcode Reference: установив этот плагин, пользователи могут получить подробный обзор всех доступных шорткодов вашей установки WordPress во время создания контента.