2012-10-29 59 views
1

我的目標是在網址中使用動態的Facebook按鈕使用php變量。我想我會首先嚐試插入一個靜態按鈕來測試它,但我遇到了一些問題。當我第一次加載頁面時,插入FB代碼後,類似的按鈕顯示正確。但是,每次之後,它都會顯示一個白色框,像按鈕內容一樣閃爍,然後消失。Facebook的按鈕無法正常顯示

我的情況可能是獨一無二的,因爲這個是一個wordpress網站,但我沒有使用wordpress的任何功能,例如後循環或任何設計版式功能。我只是使用wordpress發佈帖子,將其發送到我自己的數據庫,並用自己的代碼顯示它們。

在我的index.php <?php get_header(); ?>後,我已經把:

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=293105884122762"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 


然後在網站上隨機的地方,我已經把:

<fb:like href="mysite.com" send="false" layout="button_count" width="450" show_faces="true"></fb:like> 

我知道我需要爲IE添加XML名稱空間,但我認爲這不是必需的。

如果有人有任何建議,我會很感激他們。

+0

問題:變量'js.src'的URL聲明是否正確?如果你想通過GET來傳遞參數,它們會用問號與普通地址分離。 – reporter

回答

0

Facebook代碼只是內聯,所以如果它不包含在頁面底部,您必須致電FB.XFBML.parse()重新解析頁面HTML尋找<fb:/>標籤。另一個選擇是將此javascript放在頁面底部,或者更好地使用functions.php中的掛鉤將它包含在wp_footer中。

<?php 
// this function will output the facebook javascript code 
function add_facebook_javascript(){ ?> 
    <div id="fb-root"></div> 
    <script>(function(d, s, id) { 
     var js, fjs = d.getElementsByTagName(s)[0]; 
     if (d.getElementById(id)) return; 
     js = d.createElement(s); js.id = id; 
     js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=293105884122762"; 
     fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 
    </script> 
<?php 
} 
// this will hook your function to the "wp_footer" action 
add_action('wp_header', 'add_facebook_javascript'); 
?> 
+0

這兩個答案都是完全有道理的,我希望它能夠工作,但仍然沒有運氣。我會繼續嘗試,但我願意接受任何其他可能的建議。 – iRector

+0

我會檢查一些真實的源代碼,並回復給您 – doublesharp

+0

@iRector - Facebook做了一些修改,請嘗試上面的(它錯過了fb-root div),如果這樣做不起作用,您可能需要將其立即插入身體標籤後面。讓我知道,我可以根據需要進行更新。 – doublesharp

2

包括頁面上的以下行代碼在您的喜歡按鈕:

<script> 
    if (typeof(FB) != 'undefined' && FB != null) { 
      FB.XFBML.parse(); 
    } 
</script> 

希望它幫助。這已經解決了我非常類似的問題。

+0

這兩個答案都是完全合理的,我期望它能夠工作,但仍然沒有運氣。我會繼續嘗試,但我願意接受任何其他可能的建議。 – iRector