Микроразметка рецептов при помощи произвольных полей

Если вы хотите получить красивый сниппет в выдаче: с фото готового блюда, ингредиентами и т.д. то микроразметку внедрять надо. Другой момент, как это сделать и на каком сайте?

Введение

Ну понятно, что мы говорим про кулинарный сайт, но здесь другие критерии. Сайт может быть:

  • вновь созданным;
  • действующим с кучей статей.

Отсюда и надо плясать, при внедрении микроразметки и применении одного из способов. А способов может быть несколько, опять же при соблюдении вышеуказанных условий:

1. Если сайт действующий:

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

Оптимальный способ, если у вас действующий сайт: использовать специальные функции.

2. Если сайт новый и вы только начали его заполнять

  • можно использовать плагины с произвольными записями (например, плагин плагин Recipe Hero) — это когда создается отдельный вид записей и с помощью него заполняются все рецепты
  • можно использовать произвольные поля, для чего создается одна большая рубрика «Рецепты» и к записям в этой рубрике привязываются нужные произвольные поля

В итоге, у меня получалась вот такая схемка для внедрения микроразметки рецептов через произвольные поля

shemaorgrecipe

[alert-success]Понятно, что при использовании любого способа должно быть некоторое представление о структуре WordPress  и немножко о PHP[/alert-success]

Вот с помощью произвольных полей и будет внедряться микроразметка рецептов. Более подробно в видео

Исходные данные

  • Подопытный сайт: MamaCooks.ru
  • Используемая тема: Selfie (обзор темы)

Добавляем произвольные поля

Для прикручивания произвольных полей используется плагин Custom Field Suite. Процедура не сложная, делаем все по видео:

Плагин позволяет импортировать нужные поля, так что можете просто скопировать нижеуказанный код в нужное поле плагина

[alert-warning]Не забудьте указать нужную рубрику![/alert-warning]

Внесение данных в поля

Поля созданы, теперь для наглядности надо их заполнить

Вывод полей на странице записи

[alert-warning]Весь код выводиться в файле single.php[/alert-warning]

Всего получилось три вида произвольных полей:

  • текст;
  • загрузка файлов;
  • цикл.

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

Выводим текстовые поля

Объявляем переменную и присваиваем ей значение нужного текстового поля (можно не задавать переменные, просто с ними удобнее)

Теперь выводим ее в нужном месте, файла single.php

[alert-note]Все поля желательно выводить через условие проверки наличия в этих полях значений. Чтобы не выводился лишний контент, если вдруг поля пустые.[/alert-note]

По аналогии выводим другие текстовые поля.

Выводим загруженные картинки

Здесь все просто. При загрузке картинки нам возвращают на нее ссылку, остается только вывести ее в теге img. Для вывода нашей картинки с ингредиентами, вывод полей будет выглядеть так:

Выводим циклы

В нашем случае при помощи циклов выводятся ингредиенты и инструкция по приготовлению. Вообще, любое поле типа «цикл (loop)» можно вывести с помощью перебора. В нашем случае, вывод ингредиентов будет происходить так:

Чтобы все было красиво, добавляем нужные html-теги. Я обычно использую маркированный список:

Цикл инструкции по приготовлению создается аналогично, только еще добавляем вывод картинки шага:

Переменная $i — просто счетчик, чтобы считать шаги. В итоге получаем: шаг 1, шаг 2 и т.д.

Выводим время подготовки и время приготовления

Если вы внимательно смотрели третью серию, то знаете, что время надо указывать в минутах. Ну а чтобы эти минуты преобразовать в штатный формат — часы-минуты используем такие функции:

Пересчет времени из минут в часы

Подсчет общего времени

[alert-note]Данная функция понадобиться для внедрения микроразметки, значения функции нигде не выводяться[/alert-note]

Функции добавляем в файл functions.php и теперь надо полученные значения вывести на странице рецепта

Внедряем микроразметку

Внедрение микроразметки очень похоже на расстановку тегов. Требуется только расставить нужные теги (по другому — сущности) в нужных местах…

Единственный момент — это необходимо написать условие для вывода записей относящихся к разным рубрикам:

  • для рецептов должно выводиться itemscope itemtype="http://schema.org/Recipe"
  • для остальных записей itemscope itemtype="http://schema.org/Article"

Выглядит это примерно так

Нужные сущности схемы Recipe

Места для расстановки

Микроразметка даты и времени

«Финт ушами» для микроразметки даты

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

Подставлять его надо рядом с функцией вывода даты

Функции конвертирования времени в формат ISO8601

Для пересчета времени используются похожие функции, что были описаны выше

Функция конвертирования минут в часы для микроразметки

Пересчет времени подготовки

Конвертирование времени приготовления

Пересчет общего времени

Вывод функций времени на странице рецепта

Результаты данных функций следует выводить в теге meta. Что не даст дублировать контент на странице рецепта. Примерно так

Время подготовки

Время приготовления

Общее время

Заключение и нужные ссылки

Документация и ссылки

[one_half]

Плагин Custom Field Suite

[button-red url=»https://wordpress.org/plugins/custom-field-suite/» target=»_blank» position=»»]Скачать[/button-red] [button-blue url=»http://customfieldsuite.com/projects/cfs/documentation/» target=»_blank» position=»left»]Документация[/button-blue]

[/one_half]

[one_half_last]

[/one_half_last]

Есть вопросы? Пишем в комментариях.

Всегда ваш, Артем

48 комментариев

  1. Ирина 03.09.2015
    • Артем 03.09.2015
  2. Денис 25.12.2015
    • Артем 25.12.2015
      • Денис 25.12.2015
  3. Денис 25.12.2015
    • Артем 25.12.2015
    • Артем 25.12.2015
      • Денис 25.12.2015
        • Артем 25.12.2015
  4. Денис 26.12.2015
    • Денис 26.12.2015
      • Артем 26.12.2015
  5. Денис 02.01.2016
    • Артем 02.01.2016
      • Денис 02.01.2016
        • Артем 02.01.2016
          • Денис 02.01.2016
          • Артем 02.01.2016
  6. Виктория 12.02.2016
  7. Сергей 26.02.2016
    • Артем 26.02.2016
      • Сергей 26.02.2016
        • Артем 26.02.2016
          • Сергей 26.02.2016
          • Артем 26.02.2016
  8. Денис 26.03.2016
    • Артем 26.03.2016
      • Денис 26.03.2016
        • Артем 26.03.2016
          • Денис 27.03.2016
          • Артем 27.03.2016
          • Денис 27.03.2016
      • Денис 27.03.2016
        • Артем 27.03.2016
  9. Алексей 23.08.2016
    • Артем 24.08.2016
  10. Алексей 24.08.2016
    • Алексей 24.08.2016
      • Артем 24.08.2016
  11. Ирина 24.08.2016
    • Артем 24.08.2016
  12. Денис 02.11.2016
    • Артем 02.11.2016
  13. Сергей 15.04.2017
    • Артем 19.04.2017
  14. Дмитрий 10.06.2017

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

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

Подписывайся!

Подписывайся!

Подписывайтесь на новости сайта, чтобы ничего не пропустить

Спасибо, что подписались!