在一个网站上添加多个Google+按钮,无法识别标题和说明或图片

时间:2015-10-08 08:13:29

标签: php google-plus microdata socialshare

我网站上的博客是用PHP编写的。我从我的sql数据库中获取所有数据。

foreach($db->query("SELECT * FROM news ORDER BY position") as $row){   
 echo "<h1> {$row['title']} </h1>";
 echo "<span> {$row['date']} </span>"; 
 echo "<div> {$row['text']} </div> "; 
 echo "<a href='http://www.mywebsite.ch/images/news/{$row['name']}'><img src='http://www.mywebsite.ch/images/news/{$row['name']}'/></a>"; }

我尝试在我的网站上实现社交分享按钮。我开始使用谷歌+并遇到了几个问题。我需要为每个博客条目添加一个谷歌+分享按钮,所以我把这个代码放到我的foreach循环中。

<g:plusone size="medium" href="http://www.mywebsite.ch/images/news/<?php echo "{$row['name']}" ?>" ></g:plusone>

部分工作。在每个图像下面都有谷歌+按钮,谷歌+拍摄了正确的图像。

Correct image for each google+ button

但缺少描述和标题。所以我搜索了互联网的解决方案,发现了几篇文章 - &gt;谷歌删除了这个片段。

所以没有标题和描述,但我发现了...... https://developers.google.com/+/web/snippet/ ...并尝试实施Schema.org微数据并更改了我的代码,以便Google能够识别标题和说明

foreach($db->query("SELECT * FROM news ORDER BY position") as $row){   
 echo "<h1 itemprop='title'> {$row['title']} </h1>";
 echo "<span itemprop='author'> myself </span>";
 echo "<span itemprop='datePublished'> {$row['date']} </span>"; 
 echo "<div itemprop='description'> {$row['text']} </div> "; 
 echo "<a href='http://www.mywebsite.ch/images/news/{$row['name']}'><img src='http://www.mywebsite.ch/images/news/{$row['name']}' itemprop='image' /></a>"; }

所以现在如果我点击谷歌+分享按钮,它会显示正确的标题和文字,但谷歌总是只占我页面的最后一张图片。

我一直在网上寻找解决方案并且越来越困惑。在几个页面上写道,只能在一个页面上使用我之前使用的方法使用多个Google +按钮 - &gt;

<g:plusone size="medium" href="http://www.mywebsite.ch/images/news/<?php echo "{$row['name']}" ?>" ></g:plusone> 

我不相信,因为有几个网站(可能不是用PHP写的?),这是有用的。

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

Google+会显示从共享网址的响应中解析的数据。

在第一个图像工作但没有标题的情况下。发生这种情况是因为您正在共享图像的直接URL。谷歌提取URL,发现它是一个图像并显示缩略图,因为没有HTML来解析标题。

在第二个例子中,它正确地解析标题但是拍摄最后一张图像。这是一个网址,因此Google无法知道除了最后一个图片之外还要显示哪些图片。

解决方案是每个图片都需要自己的带有Schema.org标签的HTML页面,然后带有所有Google+按钮的索引页面需要与图像共享HTML页面的URL,而不是直接与图像共享形象本身。