Простенькая разметка Open Graph

Опубликовано: 02.09.2018

Понадобилось мне тут сделать более-менее достойное отображение информации Open Graph для красивого отображения ссылок в различных социальных сетях, таких как ВКонтакте и Facebook . За часик удалось сделать простое решение, им и поделюсь. Делал всё в блоге на WordPress .

Самые главные теги были og:title , og:description и og:image . С og:description всё было просто, если этого тега нет, то описание дёргается из тега meta name="description" , который создают практически все seo-плагины для WordPress. А вот og:title и og:image пришлось пилить самому.

С og:title всё просто. Делаем такие строчки:

echo "<meta property=\"og:title\" content=\""; the_title(); echo "\" />\n";

Пришлось делать в три строки, а не в одну, ибо название поста лезло в начало строки. Не знаю почему так, но заморачиваться было лень.

Далее. Для og:image использовал такой код:

echo "<meta property=\"og:image\" content=\"" . catch_that_image() . "\" />\n";

Вся соль в функции catch_that_image() , которой я пользуюсь давно. Она дёргает первое изображение из поста. Очень удобно для многих целей. Чтобы воспользоваться данной функцией просто добавьте следующий код в functions.php :

function catch_that_image() { global $post, $posts; $first_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('//i', $post->post_content, $matches); $first_img = $matches [1] [0]; if(empty($first_img)) { $first_img = "http://тут_путь_к_картинке/default.jpg"; } return $first_img; }

Обобщим код для создания og:title и og:image в один:

function socialki() { echo "<meta property=\"og:title\" content=\""; the_title(); echo "\" />\n"; echo "<meta property=\"og:image\" content=\"" . catch_that_image() . "\" />\n"; }

Код выше также нужно добавить в functions.php . После этого в header.php добавляем такую строчку междуи:

<?php if (function_exists('socialki')) socialki(); ?>

Вот и всё, пользуйтесь. На красивость и чистоту кода не претендую, ибо меня даже быдлокодером не назвать. Кстати, мне опять говорят, что я мало пишу в блоге. Кто, блять, сей бред читает то? И о чём написать? В принципе могу из себя выдавить пост про полную автоматизацию публикации постов в блоге в Twitter, ВКонтакте и Facebook. Надо?

rss