Пользовательская кнопка "Поделиться на 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&p[title]=<?php echo $title;?>&p[summary]=<?php echo $summary;?>&p[url]=<?php echo $url; ?>&&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, заголовком, изображениями и описанием. Вот рабочая ссылка.
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.
Надеюсь, это кому-нибудь поможет.И если я где-то ошибаюсь, пожалуйста, дайте мне знать:)
Как насчет использования 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>