Блог на моем сайте написан на 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 + share, чтобы я поместил этот код в цикл foreach.
<g:plusone size="medium" href="http://www.mywebsite.ch/images/news/<?php echo "{$row['name']}" ?>" ></g:plusone>
Это сработало частично. Под каждым изображением была кнопка Google +, и Google + взял правильное изображение.
Правильное изображение для каждой кнопки Google +
Но описание и название отсутствовали. Поэтому я искал решение в Интернете и нашел несколько статей -> 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 нет возможности узнать, какое изображение отображать, кроме последнего.
Решение состоит в том, что каждому изображению нужна своя HTML-страница с тегами Schema.org, а затем страница-указатель со всеми кнопками Google+ должна предоставить URL-адрес URL-странице HTML с изображением, а не непосредственно самому изображению.
Других решений пока нет …