Здравствуйте. Решил в этой небольшой статье написать, как добавлять свои собственные шорткоды в WordPress. Вы наверняка уже знаете, что такое шорткоды: [gallery],[audio],[video],[youtube]... Они позволяют легко вставлять в содержание и шаблоны более длинные и комплексные участки кода.

В качестве примера я использовал блок callout, который можно найти здесь.

Вставляется блок в запись таким образом:

<div class="bs-callout bs-callout-default">
 Содержание внутри блока
</div>

Если часто использовать такую конструкцию, то можно создать шорткод.

Как это сделать? В данном случае, вставляем следующий код в файл functions.php

function callout_shortcode( $atts, $content = null ) {
	$a = shortcode_atts( array(
		'class' => 'info',
	), $atts );

	return '
<div class="bs-callout bs-callout-' . esc_attr($a['class']) . '">' . $content . '</div>

';
}
add_shortcode( 'call', 'callout_shortcode' );

Код очень простой. Функции ‘callout_shortcode’ передается в качестве атрибута нужный класс (info,danger, warning, default, primary, success), по умолчанию info. Затем возвращается строка готового html кода.

add_shortcode регистрирует шорткод с названием [call]. Второй параметр это функция, которая запускается, когда в контенте встречается данный шорткод.

Вот результат уже с его использованием.

[call]Блок информационный[/call]

[call class=’warning’]Блок предупреждение[/call]

[call class=’danger’]Блок с ошибкой[/call]

[call class=’success’]Блок с успехом[/call]

Конечно, экономия десяти символов кажется не очень существенной. Но иногда и это радует 🙂

Плюс, можно создавать более сложные шорткоды. Я уже убедился, что это просто.

Можно также вставить кнопки с использованием вашего шорткода в визуальном редакторе. Это особенно полезно, если вы разрабатываете собственные темы и плагины.

Для новичков, которые боятся кода php, существует весьма полезный ресурс, который позволяет сгенерировать для вас готовый код. В репозитарии также существуют созданные специально для этого плагины. Пример, shortcoder

Это не займет много времени, не требует много усилий или знаний. Порадуйте себя удобной возможностью 🙂

Оставить комментарий

avatar
  Подписаться  
Уведомление о