2012-09-30 72 views
0

我正尝试在我的网站上为特定类型的动态网页创建共享链接。该页面有一个基本模板,但是它会运行一个大的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&amp;p[title]=<?php echo $title;?>&amp;p[summary]=<?php echo $summary;?>&amp;p[url]=<?php echo $url; ?>&amp;&amp;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 

此拉起根据需要什么似乎是正确的信息,但是当我去分享我得到这个错误共享方窗:

The message could not be posted to this Wall

我的网站正在运行Wordpress。谁能告诉我为什么这个错误发生?

另请注意,我已尝试更改共享上的权限,尝试使用其他浏览器,甚至让我的丈夫在他的计算机和他的帐户上试用它。

编辑:这里是代码的来源:http://www.daddydesign.com/wordpress/how-to-create-a-custom-facebook-share-button-for-your-iframe-tab/

编辑#2:关于进一步资料,该页面是一个“页”在WordPress的与自定义模板。该模板的占位符标题仅为“基本标题”。页面上实际显示的标题是在事实之后生成的,因为我必须先阅读XML才能找出标题的内容。我尝试过的所有典型的相似或共享代码都会将“基本标题”拉为我分享的页面的标题。他们也不会提取页面模板外部存在的任何图像或文本。埃尔戈,他们对我来说毫无用处。

编辑#3:我在facebook调试器工具中放入了一个示例URL,并注意到一些奇怪的东西。在重定向部分下,原始网址是正确的,但“rel =”规范网址是基本模板的网址。原始网址有一个HTML参数,可让PHP代码知道要获取的XML。 “抓取的URL”显示未提供参数时发生的情况。不知道这是否有帮助。

+0

是否有更完整的示例或文档可供您参考? –

+0

这里是代码来自:http://www.daddydesign.com/wordpress/how-to-create-a-custom-facebook-share-button-for-your-iframe-tab/ – ktbird7

回答

1

sharer.php端点已被弃用一段时间。从我看到的所有内容来看,Facebook现在似乎正在禁用它。你不应该依赖这个工作。您的示例教程没有过时,但评论回到2011年7月。

Facebook共享代码的当前实现解析目标页面上的元数据并使用该信息。

根据您的描述,听起来好像您在解析XML文件之前调用了get_header(),并且您的“基本标题”显示在页面元数据中。你不能那样做。您必须先解析XML,然后致电get_header()。您的header.php可能还必须进行自定义,才能从XML文件中获取正确的数据并使用它来生成元数据。

+0

我很欣赏这种洞察力,但是对于像按钮这样的工作很多:(我有几百行PHP在get_header之前不工作() – ktbird7

+0

如果必须先调用get_header(),那么您应该重新考虑您的项目你的数据我有一些基于WP的网站,我正在WP数据库之外用大量的自定义代码处理数据。所有这些在我生成任何输出之前完成。 – cpilko

+0

即使在移动代码之后,我仍然在使用“规范网址”而不是带实际参数的网址时遇到问题。 XML以及页面内容完全取决于HTML参数,但是facebook调试器显示,facebook只是抓取URL的部分减去参数。 – ktbird7