Как вставить шорткод WordPress на страницу и в шаблон

    2 комментария 448

shortcode

Привет. Сегодня поговорим о шорткодах в WordPress и научимся их добавлять на страницах записей и выводить в шаблонах. Как это работает: мы регистрируем специальных блок кода в файле functions.php и прописываем в нем то, что хотим отобразить где-либо. Это могут быть HTML конструкции или довольно массивные PHP функции. Затем вставляем короткий блок такого вида: [shortcode] прямо в статье. Рассмотрим небольшой пример и выведем Hello world прямо в статье.

1
2
3
4
function my_short(){
  return 'Hello world';
}
add_shortcode('serblog_one', 'my_short');

Выводим так:

[serblog_one]

Но если по какой-то причине вам необходимо вывести этот шорткод в шаблоне, то делается это немного по-другому:

< ?php echo do_shortcode('[serblog_one]'); ?>

В обоих случаях мы получим в месте вывода:

Hello world

Закрывающие шорткоды и атрибуты в 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>';
}

Выводим так:

[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>';
}

И делаем вставку с редактированием атрибутов:

[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 Вывод возраста (шорткод)

Вывод:

[age_site]

В моем случае выведется:

Сайту 11 лет

Вы можете в 5 строке изменить на дату своего рождения и будет считаться ваш возраст.

Но самое интересное то, что можно запрограммировать шорткод в кнопку редактора WordPress и делать быструю вставку. О том, как это сделать я писал еще в 2013 году, но это актуально и по сей день. Так что пользуйтесь, это полезно.

Добавить страницу в закладки

2 комментария
  1. Али:

    Спасибо, автор.

  2. Shortcode – это от англ. «короткий код». Используется он, в основном, при создании плагинов или модулей, предназначенных для работы с системами управления контентом (CMS), например, WordPress, Joomla и др. Проще говоря, этот короткий код является неким ярлыком, который, при добавлении на сайт, подтягивает за собой весь большой код из плагина. Такую «функцию» шорткода можно вставить в php-файл в нужное вам место на сайте. Например, в header.php, где-нибудь после body или, может быть, в sidebar.php, а лучше всего в файл шаблона страницы (он может называться как-нибудь так content-page.php), в результате, вы получите тот же слайдер, но уже встроенный в дизайн самого сайта.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *