Задать вопрос
@ligisayan

Почему при шаринге с сайта в фейсбук отправляется картинка другой новости?

Всем привет! Есть сайт на wordpress, где в шапке настроил мета-теги для twitter и facebook заданные с помощью open graph. (проблема с выводом картинки у фесбука)
Сам код
<meta name="twitter:site" content="@http://site.ru">
	<meta name="twitter:creator" content="@site.ru">
	<meta name="twitter:card" content="summary_large_image">
	<meta name="twitter:title" content="<?php the_title(); ?>">
	<meta property="og:type" content="image/jpeg">
        <meta property="og:url"  content="http://site.ru">
	<meta property="og:title"  content="<?php the_title(); ?>">
	<meta name="twitter:description" content="<?php while (have_posts()):the_post();
	$out_excerpt = str_replace(array("\r\n", "\r", "\n", "'" ,"\""), "", get_the_excerpt());
	echo $out_excerpt; endwhile; ?>">
    <meta property="og:description" content="<?php while (have_posts()):the_post();
	$out_excerpt = str_replace(array("\r\n", "\r", "\n", "'" ,"\""), "", get_the_excerpt());
	echo $out_excerpt; endwhile; ?>">
	<?php if(!has_post_thumbnail( $post->ID ))
	{
	$default_image='site.ru/logo.png';
	echo '<meta name="twitter:image:src" content="' . $default_image . '">';
	echo '<meta property="og:image" content="' . $default_image . '">';
	}
	else
	{
	$thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' );
	echo '<meta name="twitter:image:src" content="' . esc_attr( $thumbnail_src[0] ) . '">';
	echo '<meta property="og:image" content="' . esc_attr( $thumbnail_src[0] ) . '">';
	} echo "\n"; ?>
	<link rel="profile" href="http://gmpg.org/xfn/11">
	<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">

Вот в таком виде выводится на сайте
<meta name="twitter:site" content="@http://site.ru">
	<meta name="twitter:creator" content="@site.ru">
	<meta name="twitter:card" content="summary_large_image">
	<meta name="twitter:title" content="Content">
	<meta property="og:type" content="image/jpeg">
        <meta property="og:url"  content="http://site.ru">
	<meta property="og:title"  content="Title">
	<meta name="twitter:description" content="description">
       <meta property="og:description" content="description">
	<meta name="twitter:image:src" content="http://site.ru/img-768x500.jpg"><meta property="og:image" content="http://site.ru/img-768x500.jpg">
	<link rel="profile" href="http://gmpg.org/xfn/11">
	<link rel="pingback" href="http://site.ru/xmlrpc.php">

При шаринге в твиттере все новости выводятся отлично, а вот
в отладчике facebook пишет вот такую ошибку:
Свойство «og:image» должно быть указано в явном порядке, даже если его значение может быть вычислено на основании других тегов.

и выводит каждый раз одну и ту же картинку (не новости, котрую постим!), причем не лого, как можно было подумать, а взятую с другой новости. (хотя в коде выводится правильная, как и для твиттера)
В чем может быть ошибка и как можно это исправить?
  • Вопрос задан
  • 3762 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@ligisayan Автор вопроса
По всей видимости, ошибку нашел - заменил url корня сайта на url конкретной страницы и еще написал тип контента в зависимости от страницы
<?php if (is_single()) { ?> 
<meta property="og:type" content="article" />
<?php } else { ?> 
<meta property="og:type" content="website" />  
<?php } ?> 
<meta property="og:url"  content="<?php the_permalink(); ?>">
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы