Привет. Сегодня поговорим о шорткодах в WordPress и научимся их добавлять на страницах записей и выводить в шаблонах. Как это работает: мы регистрируем специальных блок кода в файле functions.php и прописываем в нем то, что хотим отобразить где-либо. Это могут быть HTML конструкции или довольно массивные PHP функции. Затем вставляем короткий блок такого вида: [shortcode] прямо в статье. Рассмотрим небольшой пример и выведем Hello world прямо в статье.
1
2
3
4
| function my_short(){
return 'Hello world';
}
add_shortcode('serblog_one', 'my_short'); |
function my_short(){
return 'Hello world';
}
add_shortcode('serblog_one', 'my_short');
Выводим так:
Но если по какой-то причине вам необходимо вывести этот шорткод в шаблоне, то делается это немного по-другому:
< ?php echo do_shortcode('[serblog_one]'); ?> |
< ?php echo do_shortcode('[serblog_one]'); ?>
В обоих случаях мы получим в месте вывода:
Закрывающие шорткоды и атрибуты в WordPress
Мы можем «оборачивать» в шорткод какой-то текст или HTML разметку, а так же добавлять определенные атрибуиты по умолчанию и менять их при выводе. Рассмотрим на примере обычной ссылки.
1
2
3
4
| add_shortcode('my_link', 'my_shortcode');
function my_shortcode( $atts, $content ) {
return '<a href="https://serblog.ru" target="_blank">' . $content . '</a>';
} |
add_shortcode('my_link', 'my_shortcode');
function my_shortcode( $atts, $content ) {
return '<a href="https://serblog.ru" target="_blank">' . $content . '</a>';
}
Выводим так:
[my_link]Ссылка[/my_link] |
[my_link]Ссылка[/my_link]
И добавим атрибуты:
1
2
3
4
5
6
7
8
9
10
11
12
| add_shortcode('my_link', 'my_shortcode');
function my_shortcode($atts) {
$params = shortcode_atts(
[
'url' => 'https://serblog.ru',
'anchor' => 'SerBlog.ru',
'class' => 'btn btn-success'
],
$atts
);
return '<a href="' . $params[ 'url' ] . '" target="_blank" class="' . $params[ 'class' ] . '">' . $params[ 'anchor' ] . '</a>';
} |
add_shortcode('my_link', 'my_shortcode');
function my_shortcode($atts) {
$params = shortcode_atts(
[
'url' => 'https://serblog.ru',
'anchor' => 'SerBlog.ru',
'class' => 'btn btn-success'
],
$atts
);
return '<a href="' . $params[ 'url' ] . '" target="_blank" class="' . $params[ 'class' ] . '">' . $params[ 'anchor' ] . '</a>';
}
И делаем вставку с редактированием атрибутов:
[my_link class="btn btn-danger" anchor="Мой сайт"] |
[my_link class="btn btn-danger" anchor="Мой сайт"]
Теперь давайте сделаем что-то полезное и напишем функцию, которая будет рассчитывать возраст сайта и выводить эти данные в любом месте.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| // Вывод возраста (шорткод)
add_shortcode('age_site', 'age_site_shortcode');
function age_site_shortcode()
{
$b = date('2010-05-31');
$now = date('Y-m-d');
$e = $now - $b;
function YearTextArg($year)
{
$year = abs($year);
$t1 = $year % 10;
$t2 = $year % 100;
return ($t1 == 1 && $t2 != 11 ? "год" : ($t1 >= 2 && $t1 < = 4 && ($t2 < 10 || $t2 >= 20) ? "года" : "лет"));
}
return 'Сайту '. $e . ' ' . YearTextArg($e);
}
// END Вывод возраста (шорткод) |
// Вывод возраста (шорткод)
add_shortcode('age_site', 'age_site_shortcode');
function age_site_shortcode()
{
$b = date('2010-05-31');
$now = date('Y-m-d');
$e = $now - $b;
function YearTextArg($year)
{
$year = abs($year);
$t1 = $year % 10;
$t2 = $year % 100;
return ($t1 == 1 && $t2 != 11 ? "год" : ($t1 >= 2 && $t1 < = 4 && ($t2 < 10 || $t2 >= 20) ? "года" : "лет"));
}
return 'Сайту '. $e . ' ' . YearTextArg($e);
}
// END Вывод возраста (шорткод)
Вывод:
В моем случае выведется:
Вы можете в 5 строке изменить на дату своего рождения и будет считаться ваш возраст.
Но самое интересное то, что можно запрограммировать шорткод в кнопку редактора WordPress и делать быструю вставку. О том, как это сделать я писал еще в 2013 году, но это актуально и по сей день. Так что пользуйтесь, это полезно.
Спасибо, автор.
Shortcode – это от англ. «короткий код». Используется он, в основном, при создании плагинов или модулей, предназначенных для работы с системами управления контентом (CMS), например, WordPress, Joomla и др. Проще говоря, этот короткий код является неким ярлыком, который, при добавлении на сайт, подтягивает за собой весь большой код из плагина. Такую «функцию» шорткода можно вставить в php-файл в нужное вам место на сайте. Например, в header.php, где-нибудь после body или, может быть, в sidebar.php, а лучше всего в файл шаблона страницы (он может называться как-нибудь так content-page.php), в результате, вы получите тот же слайдер, но уже встроенный в дизайн самого сайта.