0

我网站上的博客是用 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>"; }

我尝试在我的网站中实现社交分享按钮。我从 google+ 开始,遇到了几个问题。我需要为每个博客条目设置一个 google+ 分享按钮,因此我将此代码放入我的 foreach 循环中。

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

它部分工作。在每张图片下方都有 google+ 按钮,并且 google+ 拍摄了正确的图片。

每个 google+ 按钮的正确图片

但是缺少描述和标题。所以我在互联网上搜索了一个解决方案,发现了几篇文章 -> 谷歌已经删除了这个片段。

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

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+ 分享按钮,它会向我显示正确的标题和文本,但 google 总是只获取我页面的最后一张图片。

我一直在互联网上寻找解决方案,并且越来越困惑。在几页上写着,使用我之前使用的方法,一页上只能有几个 google+ 按钮->

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

我不相信,因为有几个网站(可能不是用 php 编写的?)可以正常工作。

有人知道我做错了什么吗?

4

1 回答 1

0

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

在图像工作但没有标题的第一个实例中。发生这种情况是因为您正在共享图像的直接 URL。Google 获取 URL,发现它是图像并显示缩略图,因为没有 HTML 可以从中解析标题。

在第二种情况下,它正确解析了标题但拍摄了最后一张图像。这是一个单一的 URL,因此 Google 无法知道除了最后一张之外要显示什么图像。

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

于 2015-10-10T23:58:40.540 回答