2017-04-11 60 views
0

我創建了一個家庭網站。作爲一個PHP INCLUDE,我將整個網站的標題一直貫穿我的主頁。這是必須的,因爲當我更改一個文件時,我需要在整個站點上更改飛行下拉菜單的大量目錄。PHP包括<head>和社交媒體標籤

除了一件事以外,一切都很精彩:我有獨特的文章,只有在那些網頁上,我需要獨特的meta標籤OG信息特定於該頁面,以便在Facebook,Twitter等文章共享時顯示正確的信息。當您在整個網站的頭部使用PHP include時,如何僅更改選擇頁面的唯一元OG數據?

我知道把第二個頭標籤不是理想的。此外,我將不得不把它放在身體,因爲我的頭文件包含文件包括頂部的身體標記。

在我去和改變網站的編碼邏輯之前,我希望有一個直截了當的解決方案,我不知道(我是一個noob編碼器,所以可能是其中的一部分)。

我知道我只能將主菜單放在一個文件中,然後在第二個頭文件中調用該菜單文件,然後在整個網站中將其包含在一個包含文件中..這會給我在那些緯度頁面。但希望有一個更容易的答案,比如「哦,不,他們的meta OG標籤可以像這樣進入身體......」或什麼?

+0

您可以測試,看看在當前頁它並使用基於該網頁上的多維數組,然後從那裏使用的值。 –

+0

使用'JavaScript'在需要的頁面的''部分添加額外的子元素''。 –

+0

如果您使用的是任何CMS或框架,請找到合適的插件/擴展。否則,如果您是在覈心PHP中進行操作,那麼您必須使用JavaScript自己編寫代碼,就像我在之前的評論中介紹的一樣。 –

回答

0

我會建議在頁面的最上面的設置在PHP變量所需的標題信息,並然後包括PHP頭文件:

page.php文件

<?php 
$og_url = 'http://www.example.com'; 
include('header.php'); 
?> 

header.php

<html> 
    <head> 
    <meta property="og:url" content="<?php echo $og_url; ?>" /> 
    </head> 

這樣,您可以爲每個頁面設置獨特的社交媒體信息,同時仍使用頭文件中的全局<head>部分。請記住,你可能還需要在情況下,你的變量不是每一個你叫從頭文件頁面上引用備用行爲:

<meta property="og:url" content="<?php echo isset($og_url) ? $og_url : $_SERVER['DOCUMENT_ROOT']; ?>" /> 

雖然文件已開始<html>,這是完全正常的在調用<html>之前設置PHP變量;它只是實際寫入DOM的內容,您需要擔心。

希望這會有所幫助! :)

+0

謝謝。非常有意義。我很欣賞這些迴應! –

+0

沒問題:)一旦你確認這個解決方案解決您的問題,請不要忘記,以紀念該解決方案通過點擊下面的按鈕投票灰色檢查是正確的 - 這刪除它從「未答覆的問題」隊列,並向問題提問者和問題答疑者授予聲譽。當然,在說,你沒有義務標記我的答案(或任何其他答案)是正確的,但它確實有助於保持事情順利進行:) –