Facebookのタイムライン埋め込みが

Simplicityの特徴 › フォーラム › 不具合報告 › Facebookのタイムライン埋め込みが

  • このトピックには4件の返信、2人の参加者があり、最後にHidekichiにより10年、 3ヶ月前に更新されました。
4件の返信スレッドを表示中
  • 投稿者
    投稿
    • #42878
      kamichiki
      ゲスト

      Facebookの「ページプラグイン」を使用して投稿記事に貼り付けたところPC版では正常に埋め込まれて見えますが、モバイル表示(iPhoneから)ですとblockquotにリンク表示になっています。

      以前はモバイルでもちゃんと表示されていたと記憶しておりますが・・・
      これもwordpress4.5.3の影響かわかりませんが取り急ぎ連絡です。

      http://40papa.com/dairy/17354

      wordpress4.5.3
      simplecity2 2.2.0

    • #42879
      Hidekichi
      ゲスト

      facebookはおそらくblockquote部分のアドレスをjavascriptでタグ書き換えしていると思うので、それらが動作していないのではなかろうかと思うんですけれども、それらが動作しない場合は、つまりアドレスが記事中にあるということでoEmbedが動作しているのではなかろうかと推測します。

      なので、ひとまずfacebookのスクリプトみたいのが正常に動作しているか等を調べて頂いてから、現在の表示のどこに原因があるのかを調べるような段取りになるかと思います。

      Simplicity公式のスクリプトを見ると、#fb-root .fb_resetみたいなものが読み込まれてますが、こういうfacebookのものだろうと思われるスクリプトがパッとみて見当たらなかったので、念の為。

    • #42891
      アバター画像わいひら
      キーマスター

      おそらく、ウィジェットで貼り付けていると思うので、同じウィジェット前に以下のコードも追記するとどうなりますか?

      <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/ja_JP/sdk.js#xfbml=1&version=v2.6";
        fjs.parentNode.insertBefore(js, fjs);
      }(document, 'script', 'facebook-jssdk'));</script>
    • #42972
      kamichiki
      ゲスト

      Hidekich様、わいひら様

      ありがとうございます。facebookページプラグインは投稿記事に直接貼り付けています。
      わいひら様のご指摘同様生成された<script>部分も追記しましたらPCでもモバイルでも表示されるようになりました。ありがとうございます。

    • #42976
      Hidekichi
      ゲスト

      > facebookページプラグインは投稿記事に直接貼り付けています。

      よくわからないんですけども、僕が書いた回答はわいひらさんの書いたようなスクリプトが見当たらないので、調べて入れてみてくださいということだったわけです。

      おそらくなんですが、これらスクリプト(facebookなり、google、twitter等のスクリプト)は、それぞれの個別の挿入する要素と、それらを書き換えるスクリプトがあって、書き換える方の部分はページに1つだけあったら良いと思います。

      例えば、Googleアドセンス

      <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
      <!-- responsive ads -->
      <ins class="adsbygoogle"
           style="display:block"
           data-ad-client="ca-pub-xxxxxx"
           data-ad-slot="xxxxxxx"
           data-ad-format="auto"></ins>
      <script>
      (adsbygoogle = window.adsbygoogle || []).push({});
      </script>

      こうなってますけれども、ここの<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>これは各ウィジェットに不要な部分です。ウィジェットには、

      <ins class="adsbygoogle"
           style="display:block"
           data-ad-client="ca-pub-xxxxxx"
           data-ad-slot="xxxxxxx"
           data-ad-format="auto"></ins>
      <script>
      (adsbygoogle = window.adsbygoogle || []).push({});
      </script>

      ここだけあれば良いのではなかろうかと。

      毎回<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>を読むのはあまり意味がなく、ヘッダに1発あればそれだけで機能すると思うんですよね。Googleもバカじゃないので、すでにadsbygoogle.jsが読み込まれていれば再度読みに行くというようなことはしない(読み込みキャンセルする)と思いますが、チェックするだけでもページを表示するまでに多少なりとも時間がかかるので、外部から読み込むスクリプトが多い場合は、なるべくこれらスクリプトは1つだけ読み込ませるようにするほうが良いかと思います。

      参考: https://support.google.com/adsense/answer/3221666?hl=ja

      上記の「ページ上に複数の広告コードがある場合、各広告ユニットに <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> を含める必要がありますか?」このような感じ。

      googleの場合は、こうですがfacebookやtwitterのタイムラインとかの場合はどうか知りません。が、基本同じかと。

      で、今回の質問の場合は、それぞれの個別の挿入する要素は存在したけれども、これら書き換えるためのスクリプトがなかったという感じかと思います。

4件の返信スレッドを表示中
  • このトピックに返信するにはログインが必要です。
スポンサーリンク
アドセンス(大)
アドセンス(大)