2011-07-24 25 views
15

Tôi đang thêm schema.org Microdata vào trang web của mình.Cách thêm thuộc tính 'tên' và 'url' vào cùng một thẻ?

HTML code của tôi là như thế này:

<div itemscope itemtype="http://schema.org/Organization"> 
<span class="title">Name of the organization</span> 
<a href="http://www.ABCCompany.com/">ABC Company</a> 
</div> 

Kể từ khi itemprop "url" và "name" của Tổ chức là tất cả trong thẻ neo. Làm thế nào tôi có thể chỉ ra cả hai "url" và "tên" itemprop trên cùng một thẻ? Tôi có phải thêm thêm thẻ span cho mục đích này không?

Tôi đã thử tìm kiếm một số ví dụ mã hóa về điều này nhưng không thể tìm thấy bất kỳ ví dụ nào để hiển thị việc sử dụng nhiều số itemprop trên cùng một thẻ.

Cuối cùng, tôi muốn có Microdata như thế này:

url="http://www.ABCCompany.com", name="ABC Company" 
+0

Knut hỏi để có câu trả lời của mình bị xóa như @cygri đã cung cấp câu trả lời đúng. Bạn có thể muốn xem lại điều này và chọn nó nếu câu trả lời của anh ấy giúp. – Will

Trả lời

30

Bạn phải làm điều đó bằng cách xếp lồng hai yếu tố. Ví dụ, bạn có thể làm tổ một <span> bên trong <a> và đặt itemprop="name" trên rằng:

<div itemscope itemtype="http://schema.org/Organization"> 
    <a itemprop="url" href="http://www.ABCCompany.com/"> 
     <span itemprop="name">ABC Company</span> 
    </a> 
</div> 

tôi thấy this site tiện dụng để thử nghiệm điều đó.

+2

Có thực sự hợp pháp khi tổ chức itemprop như vậy không? Bạn đã thấy bất kỳ ví dụ về điều đó trong spec? Các ví dụ duy nhất trên itemprops lồng nhau mà tôi đã thấy là khi một trong các itemprops là một itemtype và nó bắt đầu một itemscope mới. – knut

+3

Vâng, tất nhiên là hợp pháp. Tại sao nó sẽ không được? Thuật toán trong spec xác định lại tất cả các phần tử con, ngoại trừ nếu có @itemscope trên đó. – cygri

+3

@knut - Một 'itemprop' không tạo ra một phạm vi mới như' itemscope'. Mỗi loại phần tử ('', '', v.v.) xác định phần nào được trích xuất làm giá trị cho thuộc tính 'itemprop' được đính kèm. –

2

Có thể có sự cố với google. "Công cụ kiểm tra đoạn mã chi tiết" cho biết khi bạn đánh dấu một thẻ neo là url, phần thân của thẻ được sử dụng làm giá trị thay vì thuộc tính href. Nhưng không ai muốn hiển thị url bên trong một thẻ neo.

+2

Nếu bạn sử dụng công cụ kiểm tra đoạn mã chi tiết và bạn có itemprop = 'name' trên neo, nó sẽ hiển thị văn bản bên trong href như một mục được liên kết, vì vậy có vẻ như nó hoạt động, và dường như bạn có ' url 'và' tên 'trong một ngã swoop. BAO GIỜ, nếu bạn nhìn vào Công cụ quản trị trang web, bạn sẽ thấy itemprop = 'name' thực sự đang sử dụng URL cho thuộc tính name. Theo kinh nghiệm của tôi, bạn cần phải có itemprop = 'url' trên neo, và sau đó là một khoảng bên trong neo với itemprop = 'name' trên nó. Công cụ kiểm tra thực sự lừa dối. – emptywalls

0

này cũng làm việc và có thể nhìn một chút dễ dàng hơn để duy trì: hỗ trợ

<div itemscope itemtype="http://schema.org/Organization"> 
<span class="title" itemprop="name"><a itemprop="url" href="http://www.ABCCompany.com/">ABC Company</span></a> 
</div> 

của Google cho schema.org và google structured data tester đã được cải thiện đáng kể kể từ khi câu hỏi ban đầu đã được đăng. Mã ở trên xác nhận chính xác trong đó.

-1

Mã ban đầu của OP bây giờ có vẻ hoạt động tốt. Như đã trình bày ở đây:

https://search.google.com/structured-data/testing-tool#url=http%3A%2F%2Fmercedes-benzhanoi.com.vn%2Fmercedes-ha-noi.auto%2Fgla-250-4matic.html

<div itemscope="" itemtype="http://schema.org/Organization"> <span class="title" itemprop="name"> <a itemprop="url" href="http://mercedes-benzhanoi.com.vn/mercedes-ha-noi.auto/gla-250-4matic.html">GLA 250 4MATIC</a></span> </div>

Các vấn đề liên quan