2011-11-09 26 views
0

我有一個Portfolio page的Wordpress網站。對於每個投資組合件,我想要一個FB Like按鈕。很簡單。這是鬼鬼祟祟的位:如何在投資組合集合頁面上將「Like」URL指向ID,而不是單個頁面?

通常在一個相似的設置,例如,一個博客,您可以將Like URL設置爲指向它所附帶的帖子的單個文章頁面。但是對於這個投資組合,沒有任何單個頁面,投資組合只是一個頁面。該網址應該指向特定帖子的ID,例如http://example.com/our-work/#post-244,而不是(不存在的)http://example.com/our-work/new-client-print.html

這花了20分鐘時間爲頁面上的Tweet按鈕設置,但我在第三天試圖讓這個去Facebook贊。

我想出的最好主意是設置投資組合文章頁面,然後設置一個.htaccess重新路由到整個頁面。但是這些變量是隨機的,所以我甚至沒有嘗試過,並且在Facebook上顯示的URL將是不正確的。

像往常一樣,截止日期是今天,所以任何幫助將不勝感激。

更新:

我有點懂了工作,但最終沒有使用它。我會在最後解釋。

我複製了我用來添加id="post-##"的文章模板中的代碼。

在我的情況下,這是循環內。所以,我的FB:像這個樣子:

<fb:like href="http://example.com/our-work/#post-<?php the_ID(); ?>" layout="box_count" show_faces="false" width="70" colorscheme="light"></fb:like> 

我還需要得到元og:url代碼指向所有這些額外的URL爲Like'ing工作。爲此,我使用了

<?php 
    global $post; 
    $tmp_post = $post; 
    $args = array('post_type' => 'work'); 
    $custom_posts = get_posts($args); 
    foreach($custom_posts as $post) : setup_postdata($post); 
?> 
<meta property="og:url" content="http://example.com/our-work/#post-<?php the_ID(); ?>"/> 
<?php 
    endforeach; 
    $post = $tmp_post; 
?> 

Facebook Linter並不喜歡多og:url的,但它仍然有效。

但是,這樣做的URL將指向正確,但我仍然缺少獲得正確的圖像,標題和說明。我本可以使用相同的循環,但不知道如何將它用於驗證。而且我最終會得到一個巨大的meta ...

希望這可能會幫助別人。

回答

1

你必須每個#hash添加爲一個單獨的元og:url財產

從該解決方案唯一的缺點是,og:titleog:description對於頁面中的所有部分都是相同的,並且不可以切換,而不會在結合一些額外的魔法槽JS與服務器端的檢測,可以檢測到頁面正在被Facebook或與給定#hash -tag其他社會共享服務

+0

感謝拾起,我給它一個去。沒有意識到我可以有多個og:url的。我仍然喜歡它加載不同的og:title,og:description和og:image,但是現在看起來就像是開銷一樣。 – Eystein

相關問題