我有一個網站,客戶端請求 JSON-LD(不是微資料)schema.org 標籤。他們想要的其中一個是每個頁面上都有一個基本的「WebPage」標籤,其中包含有關每個頁面上的內容的一些資訊。另一個是“FAQPage”,僅添加在特定的 FAQ 頁面上。兩者都將作為內聯腳本標記直接添加到頁面上。
FAQPage繼承自WebPage,因此包含了WebPage的所有屬性。
如果我只是讓頁腳程式碼產生「WebPage」標籤,而FAQ 元件產生「FAQPage」標籤,則兩者最終都會作為單獨的JSON-LD 腳本標籤出現在頁面上- 我相信這會被解釋為兩個獨立的「網頁」 - 不是我們正在尋找的。 p>
是否可以標記架構標籤,以便兩個 JSON-LD 標籤代表彼此的「擴充」?由於 FAQPage 繼承了 WebPage,我希望有一種方法可以設定一個標識符,以顯示兩者是正在記錄的相同頁面。
(是的,我可以使用後端的邏輯將有關 FAQPage 的資訊「傳遞」到頁腳,並讓頁腳元件動態輸出 FAQPage 或 WebPage,但這不是我在這裡要尋找的。) p>
@id
關鍵字 可以用於此。它為節點物件提供一個 IRI 形式的標識符(或空白節點標識符)。具有相同
@id
值的節點物件是同一件事,無論這些事物的類型是否具有繼承關係。這些 IRI 不必解析為 Web 上的文件。如果他們這樣做,您應該確保區分事物和有關該事物的文件。
但是,在您的特定情況下,該事物和有關該事物的文檔實際上表示相同。因此,您可以使用頁面的規範 IRI 作為
@id
:如果物件表示相同的事物,但具有不同的
@id
值,您可以使用屬性owl:sameAs
##。但只支持 Schema.org 的消費者不會意識到這一點。 (Schema.org 也有一個 sameAs屬性,但它有不同的意義。)