Tôi không tin điều này có thể xảy ra giữa Schema và cách Google (hoặc ít nhất là công cụ Dữ liệu có cấu trúc) diễn giải nó. Tôi có thể sai, nhưng tôi nghĩ rằng vấn đề là cả hai jobTitle
và worksFor
áp dụng cho person
. Vì vậy, Google sẽ liên kết cả hai thuộc tính đó với người đó nhưng không nhất thiết phải liên kết hai thuộc tính với nhau.
Nó cũng có thể là tôi đang thiếu một cái gì đó trong cách tiếp cận của tôi và rằng điều này là thực sự có thể. Tôi muốn đăng câu trả lời của mình lên ít nhất là hướng dẫn bạn hoặc một người có trải nghiệm tốt hơn theo đúng hướng (hoặc xác nhận những nghi ngờ của tôi). Tôi có hai cách tiếp cận, tôi tin rằng cách tiếp cận Microdata xuất hiện ngay trong công cụ nhưng là sai. Tôi nghĩ rằng cách tiếp cận JSON-LD là chính xác nhưng không hiển thị đúng trong công cụ Dữ liệu có cấu trúc.
Microdata cách tiếp cận
Nếu bạn có thể sửa đổi DOM để một mức độ nào đó, bạn có thể sử dụng thẻ meta để làm tổ một tổ chức trong phạm vi con người. Mặc dù công cụ dữ liệu có cấu trúc cho thấy kết quả như tôi nghĩ rằng bạn muốn, tôi không thuyết phục các dữ liệu sẽ thực sự có liên quan vì người lao động là không thực sự gắn liền với id:
<div itemscope itemtype="http://schema.org/Person" id="person1">
<p><!--list of jobs-->
<span>Job 1</span>,
<span>Job 2</span>, and
<span>Job 3</span>
</p>
<p><!--list of places worked for-->
<span itemscope itemprop="worksFor" itemtype="http://schema.org/Organization">
<span itemprop="name">Company A</span>
<span itemscope itemprop="employee" itemref="person1" itemtype="http://schema.org/Person">
<meta itemprop="jobTitle" content="Job 1">
</span>
</span> and
<span itemscope itemprop="worksFor" itemtype="http://schema.org/Organization">
<span itemprop="name">Company B</span>
<span itemscope itemprop="employee" itemref="person1" itemtype="http://schema.org/Person">
<meta itemprop="jobTitle" content="Job 2">
<meta itemprop="jobTitle" content="Job 3">
</span>
</span>
</p>
</div>
nào trả về:
@type = Person
worksFor
@type = Organization
name = Company A
employee
@type = Person
jobTitle = Job 1
worksFor
@type = Organization
name = Company B
employee
@type = Person
jobTitle = Job 2
jobTitle = Job 3
Tôi đã tiếp cận điều này bằng cách lồng nhau Person
>Organization
>Employee
(Person
)>JobTitle
. Tôi đã thêm khoảng trống cho nhân viên có thẻ meta để bạn có thể duy trì các kiểu giao diện người dùng giống nhau.
Mối quan tâm của tôi với phương pháp này là Employee
trong mỗi Organization
sẽ bị ngắt kết nối khỏi phụ huynh Person
. Tôi đã sử dụng một id trên cha mẹ và itemref được sử dụng trong mỗi Employee
để trỏ đến id mẹ đó nhưng tôi không chắc chắn nếu đó là thực sự được hỗ trợ, hoặc có thể nó được lồng nhau là đủ (nghi ngờ).
JSON-LD tiếp cận
Tôi nghĩ rằng cách tiếp cận JSON-LD đúng cách liên hệ người gia nhập Tổ chức, nhưng công cụ của Google cuối cùng sẽ đẩy jobTitle
lại cho người về cơ bản đem lại cho bạn kết quả tương tự. Có thể có một cách tốt hơn để liên kết dữ liệu mặc dù.
<script type="application/ld+json">
{
"@context": {
"@vocab": "http://schema.org/",
"id": "@id",
"graph": "@graph",
"type": "@type"
},
"graph" : [
{
"type": "Person",
"id": "Person1",
"name": "John Smith",
"worksFor" : [
{
"id": "CompanyA"
},
{
"id": "CompanyB"
}
]
},
{
"type": "Organization",
"id": "CompanyA",
"name": "Company A",
"employees": [
{
"@id" : "Person1",
"jobTitle" : ["Job 1", "Job 2"]
}
]
},
{
"type": "Organization",
"id": "CompanyB",
"name": "Company B",
"employees": [
{
"@id" : "Person1",
"jobTitle" : "Job 3"
}
]
}
]
}
</script>
nào không may trở lại:
@type : http://www.example.com/Person
@id : http://www.example.com/Person1
name : John Smith
jobTitle : Job 1
jobTitle : Job 2
jobTitle : Job 3
worksFor
@type : http://www.example.com/Organization
@id : http://www.example.com/CompanyA
name : Company A
worksFor
@type : http://www.example.com/Organization
@id : http://www.example.com/CompanyB
name : Company B
Trong khi công cụ dữ liệu có cấu trúc trình bày một tùy chọn ở trên trong một cách mà có vẻ đúng và một trong đó trông sai nhưng dường chánh đáng, nên rất khó để nói như thế nào Google là thật sự liên quan đến dữ liệu. Nó cũng có thể chỉ là công cụ Schema/Data giả định mối quan hệ ở mức cơ bản hơn, nơi mà một người bình thường sẽ không có nhiều chức danh công việc trên nhiều tổ chức .. nhưng tôi chỉ đang suy đoán tại thời điểm đó.
Điểm mấu chốt là - Tôi cảm thấy vấn đề là Organization
chỉ có thể được liệt kê dưới một person
như worksFor
. jobTitle
chỉ có thể dưới person
và không dưới Organization
. Bạn có thể liên hệ Person
theo số Organization
dưới dạng employee
, nhưng đó dường như để chỉ cần đẩy jobTitle
quay lại liên quan person
ẩn danh trong công cụ dữ liệu có cấu trúc. Công cụ dữ liệu có cấu trúc đã biết có một số sai sót trong tài liệu của Google trong quá khứ, vì vậy tôi không chắc chắn bạn không thể dựa vào 100% những gì bạn thấy từ nó.
Tôi có thể chỉ cho bạn cách thực hiện điều này trong JSON-LD. Nếu bạn muốn microdata, bạn sẽ cần phải chuyển đổi nó. Điều đó có được chấp nhận không? –
@JayGray Điều đó sẽ tuyệt vời nếu bạn có thể cho nó một shot! Tại thời điểm này một cái gì đó là tốt hơn không có gì cho tôi, tôi thực sự bị mắc kẹt ở đây. – Steven