2

背景: prettyPhoto ライトボックスを使用して写真を表示するサイトがあります。ライトボックスに「ツイート」ボタンと Facebook の「いいね」ボタンを表示するソーシャル ツールを有効にしました。これは、現在表示されている写真だけを閲覧者が「いいね」できるようにするためです。

問題: Facebook の「いいね」ボタンを押すと、実際には同じギャラリー内のすべての写真が「いいね!」されます。すべての写真がライトボックスに同じ数のいいね! を表示します。Facebook では、ニュース フィードや最近のアクティビティでのユーザーの「いいね」は、いいねされた実際の写真ではなく、ギャラリー ページにリンクします。

私が試したこと: jquery.prettyPhoto.js ファイルを編集して、この回答にあるプレースホルダーに追加しようとしました: https://stackoverflow.com/a/11796964/2205165

また、「location_href」を「{path}」に置き換えて、写真のフル パス/URL が使用されているかどうかを確認してみましたが、使用されていないか、使用されていないようです。

「ディープリンク」を有効および無効にして上記を試しましたが、役に立ちませんでした。

ヘルプ: prettyPhoto ライトボックスから個々の写真を Facebook でいいね! したり、Twitter でツイートしたりできるようにするソリューションを誰かが持っているなら、私はすべて耳にします。すべての写真が同じ数ではなく、正しい数のいいねを表示している写真の程度であったとしても、この段階では個々の写真へのリンクにあまりこだわっていません。メインのギャラリー ページへのリンクで十分です。それ。

ありがとうございました!

4

1 に答える 1

0

誰かがこれに再び遭遇した場合に備えて、このソリューションは私にとってはうまくいき、画像を直接共有します.

これは画像専用ですが、PrettyPhoto の残りのケースでは機能しない理由はありません。

prettyPhoto.js の PrettyPhoto パラメーターで、facebook iframe を切り替えて、必要なパラメーターを使用して次のようにします。ここで重要なのは、「{path}」が iframe src の href スポットにあることだけです。

<iframe id="fbiframe" src="//www.facebook.com/plugins/like.php?href={path}&amp;width&amp;layout=button&amp;action=like&amp;show_faces=false&amp;share=true&amp;height=21&amp;" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:26px;" allowTransparency="true"></iframe>'

次に、prettyPhoto.js ファイルの 274 行付近に次の行が表示されます。

$pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup.replace(/{path}/g, pp_images[set_position]);

それと同じように別の行を追加し、以下のように src の href を置き換えます。ここでも必要なパラメーターに置き換えます。ポイントは、href が画像の場所の変数に置き換えられることです。

$('#fbiframe').attr('src', "//www.facebook.com/plugins/like.php?href="+pp_images[set_position]+"&amp;width&amp;layout=button&amp;action=like&amp;show_faces=false&amp;share=true&amp;height=26");
于 2015-03-10T19:28:58.807 に答える