我正在尝试在我的网站上为特定类型的动态页面创建共享链接。该页面有一个基本模板,但它运行一个大型PHP脚本,该脚本解析XML以构建实际有用的内容。
一个典型的Facebook分享或类似似乎拉出了基本模板的标题和内容,而不是最终页面,这对我来说是无用的,所以我发现这段代码创建了一个自定义共享链接,你可以在其中覆盖标题,描述,照片等:
$title=urlencode($xml->pet->name . ' | DPA!');
$url=urlencode($_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
$summary=urlencode($xml->pet->name . ' is available for adoption.');
$image=urlencode($thumbnail_photo);
?>
<a onClick="window.open('http://www.facebook.com/sharer.php?s=100&p[title]=<?php echo $title;?>&p[summary]=<?php echo $summary;?>&p[url]=<?php echo $url; ?>&&p[images][0]=<?php echo $image;?>','sharer','toolbar=0,status=0,width=548,height=325');" href="javascript: void(0)">Share on Facebook</a></div>
<?php
这会根据需要拉出共享窗口,显示正确的信息,但是当我去分享时,我收到此错误:
邮件无法发布到此墙
我的网站正在运行Wordpress。谁能告诉我为什么会发生这种错误?
另请注意,我已尝试更改共享权限,尝试使用其他浏览器,甚至让我的丈夫在他的计算机和帐户上进行尝试。
编辑:以下是代码的来源:http://www.daddydesign.com/wordpress/how-to-create-a-custom-facebook-share-button-for-your-iframe-tab/
编辑#2:有关详细信息,该页面是Wordpress中的“页面”,带有自定义模板。该模板有一个占位符标题,它只是“基本标题”。页面上实际显示的标题是在事实之后生成的,因为我必须首先阅读XML以找出标题的内容。我尝试过的所有典型的相似或共享代码都将“基本标题”作为我正在分享的页面的标题。它们也不会拉出页面模板外部的内容中的任何图像或文本。因此,他们对我没用。
编辑#3:我将一个示例网址放入facebook调试工具中,发现奇怪的事情。在重定向部分下,原始网址是正确的,但“rel =”规范“”网址是基本模板的网址。原始URL有一个HTML参数,可以让PHP代码知道要获取的XML。 “刮掉的URL”显示了在没有提供参数时会发生什么。不知道这是否有帮助。
答案 0 :(得分:1)
sharer.php
端点已被弃用了一段时间。从我在SO上看到的情况来看,Facebook似乎现在正在禁用它。你不应该依赖它来工作。您的示例教程没有注明日期,但评论可以追溯到2011年7月。
Facebook Share代码的当前实现解析目标页面上的元数据并使用该信息。
根据您的描述,听起来您在解析XML文件之前调用get_header()
并且您的“基本标题”显示在页面元数据中。你不能这样做。您必须先解析XML,然后调用get_header()
。您的header.php
可能还必须进行自定义,以便从XML文件中获取正确的数据并使用它来生成元数据。