2

背景:我有一个网站使用 prettyPhoto 灯箱来显示照片。我启用了社交工具以在灯箱上显示“推文”和 Facebook 的“赞”按钮,希望能够“赞”正在显示的当前照片给查看它的人。

问题: Facebook 的“点赞”按钮实际上会导致同一画廊中的所有照片都被点赞:所有照片在灯箱中显示的点赞数相同;在 Facebook 上,用户在他们的新闻提要或最近活动链接中的“点赞”链接到图库页面,而不是实际点赞的照片。

我尝试过的:我尝试编辑 jquery.prettyPhoto.js 文件以添加在此答案中找到的占位符:https ://stackoverflow.com/a/11796964/2205165

我还尝试将 'location_href' 替换为 '{path}' 以查看它是否使用了照片的完整路径/URL,但它没有,或者似乎没有这样做。

我已经在启用和禁用“深度链接”的情况下尝试了上述方法,但无济于事。

帮助:如果有人有解决方案来启用 Facebook 喜欢和 Twitter 推文中来自 prettyPhoto 灯箱的单张照片,我会全力以赴。即使照片显示正确数量的喜欢,而不是所有数量相同的照片:在这个阶段我对链接回单张照片并不太在意:链接回主画廊页面就足够了那。

谢谢!

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 回答