1

私の目標は、URL に php 変数を使用して動的な Facebook のようなボタンを作成することです。最初に静的ないいねボタンを挿入してテストするだけだと思いましたが、いくつかの問題が発生しています。最初にページを読み込んだときに、FB コードを挿入した後、いいね ボタンが正しく表示されました。ただし、その後は毎回白いボックスが表示されるだけで、いいねボタンのコンテンツのサイズがちらつき、消えます。

これはワードプレス サイトであるため、私の状況は特殊かもしれませんが、ポスト ループやデザイン レイアウト機能などのワードプレス機能は一切使用していません。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 名前空間を追加する必要があることはわかっていますが、まだ必要ではないと判断しました。

誰か提案があれば、本当に感謝しています。

4

2 に答える 2

2

いいねボタンがあるページに以下のコード行を含めます。

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

それが役に立てば幸い。これは私の非常によく似た問題を解決しました。

于 2012-10-29T16:09:42.327 に答える
0

Facebook コードはインラインで実行されるだけなので、ページの下部に含まれていない場合は、ページの HTML を再解析してタグFB.XFBML.parse()を探す必要があります。<fb:/>もう 1 つのオプションは、この 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');
?>
于 2012-10-29T17:32:31.073 に答える