Шорткоды WordPress: как сделать ваш проект более динамичным

WordPress — одна из самых распространенных систем управления контентом во всем мире. Бесчисленные плагины помогли расширить набор функций бывшего программного обеспечения для ведения блогов, позволяя пользователям создавать широкий спектр различных веб-проектов. Однако, несмотря на колоссальные изменения, которые претерпела платформа для ведения блогов за прошедшие годы, в одном аспекте она и по сей день остается верна своим корням: она по-прежнему остается очень доступной системой, которая подходит для блоггеров, редакторов и других писателей, и этим пользователям не обязательно быть экспертами в HTML и CSS, чтобы успешно распространять свой контент во Всемирной паутине.

Те, кто думает сделать первые шаги на пути к тому, чтобы стать блоггером или журналистом, будут очень хорошо оснащены WordPress. Более того, в 2008 году 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 во время создания контента.

Оцените статью
cdelat.ru
Добавить комментарий