2014-06-18 57 views
0

我想爲我的博客文章創建一個Facebook分享選項,它可以工作,但它不需要文章文字或圖像,但第一個圖像和文字在(單頁)網站。我如何更改我的共享代碼,以便它可以使用我點擊FB共享按鈕的文章圖像和文本?modX添加og:image和og:描述動態

這是博客文章模板,與FB共享代碼包括:

<div class="contentLeft"> 
    <div class="roundimage"> 
    <a href="[[+roundImage:phpthumbof=`h=750&zc=1`]]" class="colorbox" title="[[+roundImageCaption]]"><img class="round" 
    src="[[+roundImage:phpthumbof=`w=170&h=170&zc=1&q=95`]]" alt="[[+roundImageCaption]]" /></a> 
    </div> 
     <script type="text/javascript">function fbs_click() {u=location.href;t=document.title;window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&amp;t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false;}</script><a href="http://www.facebook.com/share.php?u=[(site_url)][~[*id*]~]" onclick="return fbs_click()" target="_blank" class="fbsharebutton"></a> 
     <h4 class="blue" style="margin-bottom:10px; margin-top:0;">[[+articleHeadline]]</h4> 
     <p class="datetext">[[+datetimeText]]</p> 
     <p class="readmoretext">[[+articleText]]</p> 
    <div class="divider"></div> 
</div> 

我希望你能幫助!謝謝!

回答

0

它應該足以確保文章頁面,即您正在共享的鏈接,嵌入正確的og:image和og:description。您只與分享按鈕共享鏈接,Facebook會嵌入鏈接並查看正確的數據。

更新: 我猜你沒有使用文章包創建博客?如果你已經有個人網頁,即使你不使用它們=)如果你不是我認爲你正在使用某種資源循環來創建你的條目。

在Facebook文檔中瀏覽後,似乎可以使用javascript sdk(https://developers.facebook.com/docs/sharing/reference/share-dialog)創建分享按鈕時指定圖像(https://developers.facebook.com/docs/opengraph/using-actions/v2.0#params)。每篇文章都需要調用這樣的代碼,而不是當前的JavaScript共享URL功能。

FB.ui({ 
    method: 'share_open_graph', 
    action_type: 'og.likes', 
    action_properties: JSON.stringify({ 
     image: "YourImageForThisRespectiveShare", 
    }) 
}, function(response){}); 

如果你喜歡探索我在評論中所提到的方法,它會去是這樣的:

看着你的代碼在u=location.href;,你會想嘗試修改到u=location.href+'?articleid=[~[*id*]~]';。當你分享你應該希望看到每篇文章的附加文章ID。

然後,您需要確保您可以爲每篇文章指定og:image和description,我假設您以某種方式設置了代表每篇文章的資源,在這種情況下,只需爲該資源創建一對模板變量類型。

然後,在您的標題中,您可以使用getResourceField包來從正確的資源中檢索正確的電視,正如您的URL中?articleid=參數所指定的那樣。 要檢索參數,您需要一個簡單的片段,如return (!empty($_GET['articleid']) ? $_GET['articleid'] : $default);。讓我們命名片段:「getArticleId」。當沒有指定articleid時,我離開選項來決定默認圖像。

您使用的是從您的[~[*id*]~]標記的外觀使用modx進化,但應該有一些等效的進程的getResourceField包。這是所需代碼的革命版本:

<meta property="og:image" content="[[!getResourceField? 
    &id=`[[!getArticleId? &default=`[[*id]]`]]` //Take the blog page's own image as a default 
    &field=`imageTV` //you'll of course have to change "imageTV" to whatever you call it 
    &isTV=`1` 
]]" /> 

重複使用og:title和og:description和它們各自的電視名稱。

+0

我很抱歉,但我不明白你想告訴我什麼。如何在鏈接中嵌入og:image和og:description信息? –

+0

據我瞭解,您正試圖將每篇文章的圖片和說明嵌入到您的列表中,直接在鏈接中。但是,您的Facebook鏈接只需要網址就可以了。網址鏈接到文章的各個頁面,而不是文章列表頁面。個人頁面可以使用metaog:image和og:description標籤。 –

+0

是的,但我沒有單獨的文章頁面,這是一個問題........有沒有辦法,在FB共享鏈接中交出這些元素,還是我必須找到一種方法讓每篇文章成爲一個單獨的頁面? –