Но как всегда меня поджидал сюрприз для добавления полноценной статьи с фотографией, заголовком и кратким описанием пришлось погуглить. Оказалось не все так страшно, приедется немного пошаманить с метатегами и подготовить изображение. На сайте я использую изображения в base64, этот формат оказался очень удобным для CMS. Но вот твиттер захотел реальное изображение на сервере. Конечно мне было лень переписывать CMS и менять код ради одной картинки я пошел по пути наименьшего сопротивления, создав изображение отдельной страницей конвертировав из base64 во временную картинку.
include $_SERVER["DOCUMENT_ROOT"]."bd.php"; // База данных $t=mysql_query("SELECT * FROM `page` WHERE `id`=".$_GET["link"]." LIMIT 1 "); if(mysql_num_rows($t)>0) { $s=mysql_fetch_assoc($t); } $icon = $s["icom"]; $size = getimagesize($icon); // если это изображение и у него определён размер, то продолжаем if ($size){ // ОПРЕДЕЛЯЕМ МАКСИМАЛЬНЫЕ ШИРИНУ И ВЫСОТУ ИЗОБРАЖЕНИЯ $width = 438; $height = 220; header("Content-type: image/jpeg"); // ПОЛУЧАЕМ НОВЫЕ РАЗМЕРЫ list($width_orig, $height_orig) = getimagesize($icon); if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig; } else { $height = ($width / $width_orig) * $height_orig; } $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($icon); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); imagejpeg($image_p, null, 100); unlink ($icon); } else { exit("Загружаемый файл не изображение..."); }
ну и конечно прописал мета теги для твиттера
<meta name="twitter:site" content="@evostyleru">
<meta name="twitter:creator" content="@evostyleru">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="<?php echo $page["metahead"]; ?>">
<meta name="twitter:description" content="<?php echo $page["manual"]; ?>">
<!--<meta name="twitter:image:src" content="https://www.evo-style.ru/images/articles/twitter/7.jpg">-->
<!-- и непосредственно само выводим наше изображение -->
<meta name="twitter:image:src" content="https://www.evo-style.ru/h/twitter.php?link=<?php echo $page["id"]; ?>" >
<meta name="twitter:image:width" content="435">
<meta name="twitter:image:height" content="375">
Наша статья готова для публикации в твитере осталось открыть Твитер ботам доступ к изображениям. Для этого нужно прописать разрешение в файле robots.txt Редактирование файла robots.txt через хостинг 1. зайдите на хостинг в корневую папку блога 2. найдите файл robotx.txt 3. откройте его для редактирования и впишите следующую строчку:
User-agent: Twitterbot Allow: /wp-content/uploads/
Как занести блог в белый список Твиттер И еще один маленький момент — занесение Вашего блога в белый список Твиттер. Для этого передите в Твиттер валидатор: http://cards-dev.twitter.com/validator. Вставьте в поле ссылку на ваш блог, и нажмите на кнопку «Preview card». На экране Вы увидите вот такую запись — «АдресВашегоБлога.ru is no whitelisted». Нажмите на кнопку «Request Approval». Это небходимо для проверки блога и заненсение его в белый список. На проверку может понадобиться некоторое время. Через пару часов снова зайдите в Твиттер валидатор и вставьте в поле адрес статьи. Если все сделано правильно, Вы увидите справа предпросмотр анонса. Ну что ж, теперь можно все протестировать в действии. Отправьте любую Вашу статью в Твиттер. Зайдите в Твиттер аккаунт и нажмите на ссылку «Показать сводку». Кстати, все Ваши старые твиты, тоже дополнятся анонсами статей :). Теперь Ваши фаловеры в Твиттер аккаунте будут видеть не только Твит из 140 знаков со ссылкой на статью, но и полный анонс статьи (как в facebook или google+). Мой блог тоже сделан на шаблоне AB-inspiration и сейчас на нем установлена последняя версия. Поэтому Вы можете протестировать этот механизм прямо сейчас. Кликните по кнопке Твиттер и отправьте эту статью в свой аккаунт. Затем посмотрите, как Ваш твит будет выглядеть в Вашем аккаунт в Твиттер.