Микроразметка главного меню 2.X

449
Микроразметка главного меню


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

Вы можете быть согласны или нет, можете делать это или нет. Решайте сами. Я просто предлагаю вариант. Что это даст? Ну, например, через 2 дня после внедрения микроразметки меню сайт в гугле стал отображаться с быстрыми ссылками, хотя до этого ничего не предвиделось.
Микроразметка главного меню
Простите, замазал, не хочу светить. Это частный случай, я не даю никаких гарантий.

В общем, это лирика. Кому нужно - используйте, кому нет - можете забросать меня гнилыми помидорами)) Мне все равно.

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

1. В папке templates/шаблон/assets/ui есть файл menu.tpl.php. Если в папке Вашего шаблона его нет, значит в дефолтном смотрите. Делаем точную копию этого файла, но называем его menu_main.tpl.php.

2. Дальше фокус-покус - меняем содержимое нашего нового файла на это:
Спойлер
3. Переходим в админку -> Виджеты и страницы. Находим там наше главное меню и нажимаем на карандаш, чтобы изменить. Во вкладке "Опции" меняем шаблон списка меню на наш (menu_main) и сохраняем.

Микроразметка главного меню

Результат можно проверить в валидаторе Гугла и Яндекса.

Вкратце разберем, что мы натворили.

1. В первой строке мы обозначили нашу сущность, добавив тегу ul необходимые атрибуты:
Код PHP:
  1. itemscope itemtype="https://schema.org/SiteNavigationElement"
2. Дальше обозначили ссылку пункта меню с условием, что это пункт меню первого уровня - в 40 строке ссылке добавили код:
Код PHP:
  1. <?php if ($item['level'] == 1) { ?>itemprop="url" <?php } ?>
3. И последнее - обозначили заголовок каждой ссылки - 41 строка:
Код PHP:
  1. <?php if ($item['level'] == 1) { ?> itemprop="name"<?php } ?>
Таким образом, если Вам нужно разметить элементы всех уровней, то нужно убрать условие в 2 и 3 пунктах.

Также, если вы хотите разметить все меню сайта таким образом, то просто в настройках виджета укажите шаблон. Еще можно сделать несколько шаблонов, например, два (см. в самом начале) - в одном разметить только пункты первого уровня, а в другом всех уровней. И применять эти шаблоны там, где вздумается.

Спасибо за внимание, всем хорошего дня!
Микроразметка списка записей
Комментарии (12)
Алексей Тимофеев 19 июня 2018 в 16:27 +1
small user social cms
+ Спасибо!
@alexandr22 19 июня 2018 в 16:55 0
small user social cms
@alexandr22 19 июня 2018 в 16:56 0
small user social cms
что так в поисковики будет отображаться
WebMan 20 июня 2018 в 10:06 +2
small user social cms
Не факт, что поисковики будут использовать эту микроразметку для своих сниппетов, они сейчас очень "умные" и живут своей жизнью. Даже в приведённом Вами, @alexandr22, примере на сайте микроразметка меню отсутствует, а в поисковой выдаче разделы всё равно есть - для крупных сайтов с чётко выделенными разделами Гугл подбирает эти ссылки самостоятельно.

Но всё же попробовать стоит, это точно увеличит шансы на красивую выдачу. Спасибо, шэльдэ бердэ бельдэ! Полезная доработка!
шэльдэ бердэ бельдэ 19 июня 2018 в 16:58 +2
small user social cms
Примерно так. Но никаких гарантий.
Алексей Тимофеев 20 июня 2018 в 08:03 +1
small user social cms
В гугле появился SiteNavigationElement НЕТ ОШИБОК НЕТ ПРЕДУПРЕЖДЕНИЙ 1 ЭЛЕМЕНТ
это то что я думаю ?
шэльдэ бердэ бельдэ 20 июня 2018 в 08:06 +2
small user social cms
Ну да, нажмите на него - он развернется. Там внутри содержимое.
Алексей Тимофеев 20 июня 2018 в 08:16 +3
small user social cms
Спасибо- продолжайте в том же духе. Очень полезно.
Nsk 23 июня 2018 в 16:57 0
small user social cms
Было так



А Стало так.... Как исправить?
шэльдэ бердэ бельдэ 23 июня 2018 в 18:03 +1
small user social cms
Видимо, у Вас в файле menu.tpl.php был код, отличный от кода, который в дефолтном шаблоне. Исправить легко - скопировать код из файла menu.tpl.php в файл menu_main.tpl.php, а в нем уже сделать необходимые правки. Вверху я написал, как и что делалось.
шэльдэ бердэ бельдэ 23 июня 2018 в 18:09 +1
small user social cms
1. Найти <ul и заменить на <ul itemscope itemtype="https://schema.org/SiteNavigationElement"

2. Найти <a и заменить на <a <?php if ($item['level'] == 1) { ?>itemprop="url" <?php } ?>

3. Найти <span и заменить на <span <?php if ($item['level'] == 1) { ?> itemprop="name"<?php } ?>

Примерно так.
Nsk 24 июня 2018 в 08:32 0
small user social cms
Все отлично, ждем результат