2012-08-01 47 views
0

我使用session值來設置Facebook的meta標籤的內容:當我查看網頁的源HTML出現這樣動態內容:標題Facebook的meta標籤

<meta property="og:title" content="<?php print $_GET['p']; ?>"/> 

<meta property="og:title" content="Alex Atalla"/> 

這意味着它已成功填充標題元標記內容中的會話值的值。

但是,當我使用Facebook的調試器它說:

Object Missing a Required Value: Object at URL 'http://www.palestinianz.com/' of type 'website' is invalid because a required property 'og:title' of type 'string' was not provided. 

是什麼問題?

+0

當我測試使用fac的URL電子書調試器:https://developers.facebook.com/tools/debug – 2012-08-01 01:29:56

+1

只需查看palestinianz.com的來源,標題標籤就在那裏,但主頁上沒有值 – 2012-08-01 01:31:40

+0

@DerekHunziker值什麼? – 2012-08-01 01:33:33

回答

1

設置默認值

if(!isset($_GET['p'])){ 
$value = 'default value'; 
}else{ 
$value = $_GET['p']; 
} 

<meta property="og:title" content="<?php echo $value; ?>"/> 

默認價值將在您的主頁上OG

+0

但爲什麼總是$ _GET ['p']是空的?! – 2012-08-01 02:21:34

0

嗯,當然他沒有填寫http://www.palestinianz.com/,因爲og:標題正在用URL中的p參數填充(GET ['p'])。如果我訪問http://www.palestinianz.com/?p=Tivie,og:title會填充「Tivie」。

如果這是所需的效果,請將調試器指向個人頁面。 http://www.palestinianz.com/?p=Alex-Atalla什麼的。

編輯: 我想我明白你想要做什麼。 如果你不介意我的建議......

改變你的代碼如下:

<meta property="og:title" content="<?php print (isset($_GET['p'])) ? $_GET['p'] : 'They Are Palestinians'; ?>"/> 

然後瞭解Apache Mod Rewrite

+0

是的,但https://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fpalestinianz.com%2F%3Fpage%3Dperson%26p% 3DEdward-Said說,除非在URL – 2012-08-01 02:07:33

+0

中有p,否則爲什麼總是$ _GET ['p']是空的? – 2012-08-01 02:24:06

+0

$ _GET ['p']是p =網址中的內容。如果url中沒有p = something,$ _GET ['p']是空的! – Tivie 2012-08-01 10:34:32