Введение в шорткоды WordPress

Введение в шорткоды WordPress

Здравствуйте! с вами Павел. И первое, чтобы бы мне хотелось сделать - так это извиниться что пишу не так часто, как хотелось бы. К сожалению (или нет) но последнее время слишком много работы, и писать новые статьи совершенно не успеваю. Но пока WordPress пользуется популярностью - статьи выходить будут, по крайней мере раз в неделю.

И вот, решил опубликовать серию статей посвященных шордкодам. Тема заезженная до дыр, и уверен что в каждом блоге посвященному WP можно найти подобную статью. Но все же, начинать писать более "продвинутые" статьи без каких либо азов и понятий будет не правильно. Поэтому первую статью, я посвящу азам данного направления и простым примерам. А в следующих статьях данной темы, мы постараемся скрестить шорткод с модулем написанным в одной из предыдущих тем.

Шотрткод (как я его понимаю) - это пользовательский BB тег, который можно вставить в статью, страницу или код сайта с последующей его заменой на какую либо другую информацию программным способом.

В определениях я не селен. Но вижу я это примерно так как написал выше. А ниже, постараюсь расписать почему я так считаю.

Примеры шорткодов:
[my-short-code] - "пустой" шорткод
[sh color="red"] - шорткод с дополнительным параметром (атрибутом/свойством)
[some_text size="20px" style="bold"]текст для шорткода[/some_text] - шорткод с параметрами и текстом.

Пожалуй вот и все возможные варианты.

Идей для их применений масса. И первое что мне пришло в голову - это вставка рекламных объявлений через эти коды (но об этом поговорим в следующих статьях). А сейчас рассмотрим простые примеры с "Hello World" и тому подобным.

Пример первый. Вместо шорткода, нам нужно отображать приветствие к читателям сайта в начале каждой статьи. При этом, используя атрибут "id", можно выбирать какой либо из готовых, ранее предустановленных приветствий.

В качестве такого шорткода будем использовать - [hello id="x"]. Где "id" - номер приветствия.

Чтобы его создать, открываем файл "functions.php", и в самый конец файла (хотя это не принципиально), добавляем следующий код:

function wp2fl_hello($attr)
{

	$ar = array(
		'Привет, с Вами ...',
		'Здравствуйте, с Вами снова ...',
		'Приветствую, на связи ...',
		'Рад видеть Вас в очередной раз на своем сайте ...',
		'И опять я...',
		'И т.д. и.п.',
	);

	return isset($ar[$attr['id']]) ? $ar[$attr['id']] : array_shift($ar);
}
add_shortcode('hello', 'wp2fl_hello');

где «add_shortcode» хук, позволяющий добавлять шорткоды. Функция, подключаемая к хуку, может принимать два параметра. Первый — массив атрибутов, второй — текст шорткода.

А для того что бы проверить работу нашего шорткода, достаточно, в статье или странице — вставить код [hello id="2"], сохранить ее, перейти на front end, перезагрузить и глянуть результат.

Пример второй. Используя шорткод, нужно отображать рандомно (или случайно) изображение в какой либо части статьи.

В качестве шорткода будем использовать «[rand-img]». А его код, будет иметь следующий вид:

function wp2fl_rand_img()
{
	$ar = array(
		'/_images/1.jpg',
		'/_images/2.jpg',
		'/_images/3.jpg',
		'/_images/4.jpg',
		'/_images/5.jpg',
	);

	$i = rand(0, sizeof($ar)-1);
	if(isset($ar[$i]))
	{
		return '<img src="'.$ar[$i].'">';
	}
	return '';
}
add_shortcode('rand-img', 'wp2fl_rand_img');

Пример третий. Используя шорткод, нам нужно оформлять текст заданным образом применяя стили оформления. Пример кода:

function wp2fl_style($attr, $content)
{
	return '<span style="color:red; font-weight:bold">'.$content.'</span>';
}
add_shortcode('style', 'wp2fl_style');

Во втором и третьем случае, принцип тестирования аналогичный первому - вводим шорткод в статью, а на фронтенде проверяем результат.

На этом все.

А в следующей статье, вы сможете узнать как используя шорткод считать RSS ленту другого сайта, и отобразить полученную информацию в своей статье.

Поделиться в соцсетях:
Статьи на похожую тематику

С вашим WordPress сайтом проблемы? нужен дополнительный функционал? нестандартный плагин или сверстать новую страницу?
Тогда напишите мне через форму обратной связи, и я постараюсь вам помочь.

Комментарии
  1. Егор

    Здравствуй, а шорткод рандом выводит картинки после перезагрузки страницы, как я понял?
    А вот если выводить определенную картинку, к определенному дню? Например, к праздникам свои картинки к каждому. Я думаю не сложный код, даже элементарный. С шорткодом удобней просто, чем скриптом.

    ответить
    1. Pavel
      17.03.2015 в 20:32 автор блога

      Здравствуйте, Егор!
      Да, вывод картинки по праздникам реализовать тоже очень просто. Вам нужно будет заранее, сопоставить массив дат нужным картинкам, типа:

      ["03-08"] => 'img1.jpg',
      ["mm-dd"] => 'img2.jpg',

      и сравнивать с текущей датой:

      if(isset($date_ar[date('m-d')]))
      {
      echo $date_ar[date('m-d')];
      }

      и т.д.

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

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