在一个网站上添加多个 Google+ 按钮,无法识别标题和描述或图片
Add Multiple Google+ buttons on one site, doesn't recognize title and description or image
我网站上的博客是用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+ 拍下了正确的图片。
Correct image for each google+ button
但是缺少描述和标题。所以我在互联网上搜索解决方案并找到了几篇文章 -> google 已删除此代码段。
所以没有标题和描述,但我找到了这个...
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+ 分享按钮,它会显示正确的标题和文字,但是 google 总是只获取我页面的最后一张图片。
我一直在网上搜索解决方案,但越来越困惑。在好几页上写着用我之前用的方法只能在一页上有几个google+按钮->
<g:plusone size="medium" href="http://www.mywebsite.ch/images/news/<?php echo "{$row['name']}" ?>" ></g:plusone>
我不相信,因为有几个网站(可能不是用 php 编写的?)可以正常工作。
有人知道我做错了什么吗?
Google+ 显示从正在共享的 URL 的响应中解析的数据。
在第一个实例中,图像有效但没有标题。发生这种情况是因为您正在共享图像的直接 URL。 Google 获取 URL,发现它是一张图片并显示缩略图,因为没有 HTML 从中解析标题。
在第二种情况下,它正确解析了标题,但拍摄了最后一张图片。它是单个 URL,因此 Google 无法知道除了最后一张之外要显示的图像。
解决方案是每个图像都需要它自己的带有 Schema.org 标签的 HTML 页面,然后带有所有 Google+ 按钮的索引页面需要共享 URL 到包含图像的 HTML 页面,而不是直接到图像本身。
我网站上的博客是用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+ 拍下了正确的图片。
Correct image for each google+ button
但是缺少描述和标题。所以我在互联网上搜索解决方案并找到了几篇文章 -> google 已删除此代码段。
所以没有标题和描述,但我找到了这个... 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+ 分享按钮,它会显示正确的标题和文字,但是 google 总是只获取我页面的最后一张图片。
我一直在网上搜索解决方案,但越来越困惑。在好几页上写着用我之前用的方法只能在一页上有几个google+按钮->
<g:plusone size="medium" href="http://www.mywebsite.ch/images/news/<?php echo "{$row['name']}" ?>" ></g:plusone>
我不相信,因为有几个网站(可能不是用 php 编写的?)可以正常工作。
有人知道我做错了什么吗?
Google+ 显示从正在共享的 URL 的响应中解析的数据。
在第一个实例中,图像有效但没有标题。发生这种情况是因为您正在共享图像的直接 URL。 Google 获取 URL,发现它是一张图片并显示缩略图,因为没有 HTML 从中解析标题。
在第二种情况下,它正确解析了标题,但拍摄了最后一张图片。它是单个 URL,因此 Google 无法知道除了最后一张之外要显示的图像。
解决方案是每个图像都需要它自己的带有 Schema.org 标签的 HTML 页面,然后带有所有 Google+ 按钮的索引页面需要共享 URL 到包含图像的 HTML 页面,而不是直接到图像本身。