2016-04-07 4 views
1

Я работаю над добавлением элементов Schema.org на сайт Drupal. Как некоторые могут уже знать, может быть больно изменить отображаемый HTML для отдельных полей.Могу ли я указать свойство Schema.org на уровне обертки элемента вместо тега элемента?

В этом случае я работаю над страницами деталей продукта. В частности, добавление свойства itemprop="name" в поле названия продукта. Это простой тип содержимого узла, над которым я работаю. Поэтому я изменил шаблон узла для этого типа содержимого элемента. Это приводит к следующей структуре HTML:

<div itemprop="name" class="product-view__item__title"> 
    <h3 class="field-label"></h3> 
    <h1 class="field-title-field item__title-field"> 
    Very Important Product 
    </h1> 
</div> 

Все внутри div элемента происходит от вызова render() на заголовке поля в шаблоне. До сих пор мне не хватило удачи с помощью крючков для изменения вложенного тега h1. Но я не слишком старался, так как мне придется делать это в других областях и хотел бы узнать, могу ли я уйти с указанием свойства элемента, которое находится далеко от дерева HTML.

Значит, любые мысли? Нужно ли мне свойство, добавленное на уровне h1, или я могу уйти с ним на уровне div в этом примере?

Мы делаем это, чтобы обеспечить поисковые системы лучшей информацией.

ответ

1

Да, вы можете это сделать.

Значение для свойства name будет l быть элементом textContent элемента (то есть текстовым содержимым элемента и всех его потомков, объединенным).

Это, конечно, означает, что вы должны убедиться, что внутри этого div (как ярлык элемента с классом field-label) отсутствует.


¹ Как определено by WHATWG’s Microdata (Living Standard) и by W3C’s Microdata (W3C Working Group Note).