自定义Facebook共享按钮与自定义标题,网址,wordpress中的图像

时间:2014-08-27 07:08:24

标签: php facebook wordpress facebook-opengraph opengraph

我知道堆栈溢出可能有很多这样的问题。但我没有得到我想要的解决方案

我正在使用wordpress。在我的所有帖子页面都有分享按钮(通过addthis插件),但发生的事情是当我点击在Facebook上分享(通过addthis插件)时,它采取了所有的东西完美我表示网址,标题,但图像是其他内容。

demo url

所以我试图在addthis插件下面制作自定义共享按钮:

多数民众赞成:在Facebook页面上自定义分享!但是当我点击它时,我的标题和链接也没有发生在网站上:下面是我的自定义Facebook共享的代码:

  <?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>

我还在我的wordpress header.php中在头行之间推出了OpenGrap标签

<?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上分享它的标题,图片(那些 resp post 图片,而不是现在正在发生的网站上的任何其他图片)及其描述)

Working reference link

立即更新:

在那里我找到了https://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fwww.thefansworld.com%2Fhappy-new-year-trailer%2F

在这里,当我推送我的链接时,显示我的功能图像,但在:

When shared, this is what will be included你会看到别的东西(图片)

1 个答案:

答案 0 :(得分:2)

在这里和那里很久以后我找到了上面的解决方案:

替换上面的元标记

<?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(); ?>

但仍然有一些POST给我错误的图像,经过一些研究后我发现:

从网址中提取网页时,Facebook会将其内容缓存以供日后使用。这意味着,如果Facebook曾经从您的网站提取数据,而不是您的网站更改(例如您的og:图像标签更改),Facebook将不会更改图像,因为它已经包含了所有缓存的内容。

尝试访问Facebook Debugger页面并查看Facebook&#34;看到的内容&#34;。使用此工具会强制Facebook刷新给定URL中的数据。这是调试它的最佳方法。

当你确定Facebook&#34;看到&#34;适当的og:图像标签,然后确保og:图像中的图像具有适当的最小宽度/高度(它在fb调试器中都有解释)。

如果不符合FB的标准,Facebook将不会使用og:image中的图像。如果您的网站上的内容出现任何问题,我强烈推荐使用此工具。

希望这会对某人有所帮助。如果我错了,请告诉我一些事情:)