Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Qartvela™

Фейсбук не ищет картинки в теме

Рекомендованные сообщения

То есть...

 

Когда открываешь тему и добавляешь картинки в виде:

 

[img=http://site.com/image.jpg]

или

 

[img=http://site.com/image.jpg]

А потом делишься ссылкой темы или поста на фейсбук, он (фейсбук) не видит картинку из темы и отображает стандартную картинку og:image

 

Но если добавляешь картинку через стандартную функцию "Attachment" тогда фейсбук видит и загружает картинку в диалоговом окне.

 

Как эту проблему решит?

Поделиться сообщением


Ссылка на сообщение

Но если устанавливаю это hook

bim_image_meta_tag_hook.rar

тогда фейсбук находит картинку, но из первого поста. А бывает что в первом посте только текст написано :(

 

Hook details:

Automatically retrieve the first image from the article (including the attached image) and then add it to the meta tag "og: image". So when you share posts on facebook or other social networks it will have that screenshots instead of the fixed meta_image.png image of the IPB.

https://ipsviet.com/topic/35915-bim34-image-meta-tag-101/

Поделиться сообщением


Ссылка на сообщение

FB и не должен картинки искать.

Зайдя на страница, он ищет теги Open Graph.

 

Для изображения это og:image.

 

Если в посте есть вложения, то тег добавляется автоматически на страницу.

Поделиться сообщением


Ссылка на сообщение

Тогда как добавить картинки в og:image которые вставлены через bbcode?

 

[img=http://site.com/image.jpg]

или

 

[img=http://site.com/image.jpg]

 

 

Если в посте есть вложения, то тег добавляется автоматически на страницу.

Конечно есть, но не добавляется.

 

Например... Из одной темы с форума, где точно вставлены картинки, В FireBug видно картинка который задан для og:image

<meta property="og:image" content="http://site.com/fb_600_315.jpg"/>

В https://developers.facebook.com/tools/debug/ & https://developers.facebook.com/tools/debug/og/object/ тоже самое.

Поделиться сообщением


Ссылка на сообщение

Кстати, тоже самое с G+ один в один.

Поделиться сообщением


Ссылка на сообщение

Точно. Аналогичная проблема.

 

Стоит: <meta property="og:image" content="{$this->settings['meta_imagesrc']}" />

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

В моем случае проблема в системе форума, он скрывает картинки для фейсбука и G+ которые вставлены с помощью bbcode.

Поделиться сообщением


Ссылка на сообщение

В моем случае проблема в системе форума, он скрывает картинки для фейсбука и G+ которые вставлены с помощью bbcode.

Форум и не должен их показывать.

Когда Вы добавляете аттачмент в виде картинки, то при отображении страницы темы добавляется тег og:image в код страницы.

Если нужен такой же трюк с обычными картинками, вставленными при помощи бибикода img, то нужно из постов вытаскивать изображения и добавлять og:image

Поделиться сообщением


Ссылка на сообщение

@newbie

то нужно из постов вытаскивать изображения и добавлять og:image

Понятно. Как это сделать?

Поделиться сообщением


Ссылка на сообщение

Понятно. Как это сделать?

 

Например, добавить в шаблон post

preg_match('~<img[^>]*?src="([^"]*)"[^>]*>~i', $post['post']['post'], $matches); 
if ($matches[1])
{
$this->registry->output->addMetaTag('og:image', $matches[1], false);
}

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

@newbie

Супер! Работает! Спасибо большое!

Поделиться сообщением


Ссылка на сообщение

Сделал так:

 

1) С globalTemplate убрал и вставил в boardIndexTemplate:

<meta property="og:image" content="{$this->settings['meta_imagesrc']}"/>

Можно делать условие и оставить в globalTemplate:

<if this not a topick>
<meta property="og:image" content="{$this->settings['meta_imagesrc']}"/>
</if>

 

2) В шаблоне post:

preg_match('~<img[^>]*?src="([^"]*)"[^>]*>~i', $post['post']['post'], $matches); 
if ($matches[1])
{
   $this->registry->output->addMetaTag('og:image', $matches[1], false);
} else if ($matches[0]) {
$this->registry->output->addMetaTag('og:image', str_replace("\r", "", $this->settings['meta_imagesrc'] ), FALSE );
}

 

Сделал так потому что фейсбук сначало видел стандартную meta_imagesrc и брал его в кэш.

Щас когда нажимаю поделиться в окно показывается информация без картинки, закрываю окно и заново нажимаю поделиться, в открытом окне все показывается нормально. Или просто F5.

Это можно исправить?

Поделиться сообщением


Ссылка на сообщение

Здравствуйте

 

<php>
if (preg_match('~<img[^>]*(bbc[^>]*img*)[^>]*src="([^"]*)"[^>]*?>~i', $post['post']['post'], $matches, PREG_OFFSET_CAPTURE, 0))
{ 
   print_r($matches[2]);
   $this->registry->output->addMetaTag('og:image', $matches[2]);
} else {
   print_r($matches[2]);
   echo 'Not found'; 
   $this->registry->output->addMetaTag('og:image', $this->settings['meta_imagesrc']);
}
</php>

 

Если картинка найдена выводит:

Not foundNot foundArray
(
   [0] => https://site.com/uploads/1.jpg
   [1] => 3240
)
Array
(
   [0] => https://site.com/uploads/2.jpg
   [1] => 1064
)
Not foundNot foundNot foundArray
(
   [0] => https://site.com/uploads/3.jpg
   [1] => 3185
)
Not foundNot foundNot foundNot foundNot foundArray
(
   [0] => https://site.com/uploads/4.jpg
   [1] => 1084
)
Not found

 

Не понимаю что ему не нравится :(

Поделиться сообщением


Ссылка на сообщение

Вам newbie написал другой вариант preg_match, зачем надо было менять формат?

else там явно лишний, потому что по умолчанию и так будет дефолтная картинка.

Этот код также отрабатывает для всех сообщений в теме, не только первой. Возможно имеет смысл ограничить только первым сообщением, или первой найденной картинкой.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...