Пользовательская кнопка "Поделиться на Facebook" с пользовательским заголовком, URL-адресом, изображением в wordpress


На моей странице "Все публикации" есть кнопка "Поделиться" (через Добавить этот плагин).

Когда я нажимаю, чтобы поделиться на Facebook, он принимает URL-адрес и заголовок, но изображения показывают что-то другое. Например.

Я попытался создать пользовательскую кнопку "Поделиться", которая находится ниже, но когда я нажимаю на нее, ничего не происходит.

  <?php
    $title = the_title();
    $url= the_permalink();
    $summary=urlencode('Custom message that summarizes what your tab is about,  or just a simple message to tell people to check out your tab.');
    $image= wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ),  'single-post-thumbnail' );
  ?>
    <a onClick="window.open('http://www.facebook.com/sharer.php?s=100&amp;p[title]=<?php echo $title;?>&amp;p[summary]=<?php echo $summary;?>&amp;p[url]=<?php echo $url; ?>&amp;&p[images][0]=<?php echo $image[0];?>', 'sharer', 'toolbar=0,status=0,width=548,height=325');" target="_parent" href="javascript: void(0)">
        Custom Share on Facebook page!
    </a>

Я также поместил теги открытого графика в свой header.php между тегами <head>:

<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); ?>
<meta property="og:title" content="<?php the_title(); ?>" /> 
<meta property="og:description" content="" />  
<meta property="og:image" content="<?php echo $image[0]; ?>" /> 
<meta property="og:video" content="" /> 
<meta property="og:video:width" content="560" />  
<meta property="og:video:height" content="340" />  
<meta property="og:video:type" content="application/x-shockwave-flash" />

Все мои сообщения с моего сайта должны быть доступен для публикации на Facebook и Twitter с его URL, заголовком, изображениями и описанием. Вот рабочая ссылка.

Author: Ethan O'Sullivan, 2014-08-27

2 answers

После того, как здесь и там долго я нахожу решение для вышеперечисленного:

Заменено выше мета-тега на ниже

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' );  ?>

<?php if($image[0] != "" ){ ?>

<meta property="og:image" content="<?php echo $image[0]; ?>"  >

<?php } else { ?>

<meta property="og:image" content="logo.png"  >

<?php } ?>


<meta property="og:image:width" content="3523" >

<meta property="og:image:height" content="2372" >

<meta property="og:url" content="<?php echo the_permalink(); ?>"  >

<meta property="og:title" content="<?php echo the_title(); ?>"  > 

<meta property="og:site_name" content="Thefansworld" />

<meta property="og:description" content="" >  

<meta property="fb:app_id" content="3668661019" >

<meta property="fb:admins" content="" >

 <?php endwhile; wp_reset_query(); ?>

Но все же некоторые сообщения дают мне неправильные изображения, и после некоторых исследований я нашел :

При извлечении веб-страницы из URL-адреса Facebook кэширует ее содержимое на потом. Это означает, что если Facebook однажды извлекет данные с вашего сайта, и чем изменится ваш сайт (например, изменятся теги og:изображения), Facebook не изменит изображение, потому что оно уже все хранится в кэше на его стороне.

Попробуйте посетить страницу отладчика Facebook и просмотрите, что "видит" Facebook. Использование этого инструмента заставляет Facebook обновлять данные с данного URL-адреса. Это лучший способ отладить его.

Когда вы убедитесь, что Facebook "видит" правильные теги og:image, убедитесь, что изображения в og:image имеют надлежащую минимальную ширину/высоту (все это объясняется в отладчике fb).

Facebook не будет использовать изображение из og:изображение, если оно не соответствует Критерии FB. Я настоятельно рекомендую этот инструмент всякий раз, когда возникают какие-либо проблемы с контентом с вашего сайта на FB.

Надеюсь, это кому-нибудь поможет.И если я где-то ошибаюсь, пожалуйста, дайте мне знать:)

 1
Author: user3209031, 2014-08-27 10:29:59

Как насчет использования u var, чтобы поделиться своим URL-адресом и позволить facebook получать контент с помощью тегов Opengraph?

Что-то вроде этого

<a onClick="window.open('http://www.facebook.com/sharer.php?u=<?php echo $url; ?>', 'sharer', 'toolbar=0,status=0,width=548,height=325');" target="_parent" href="javascript: void(0)">Custom Share on Facebook page!</a>
 0
Author: Carlos Faria, 2014-08-27 07:29:40