Добавляем кнопки соц. сетей в WordPress.

13-03-02 Php, WordPress PHP, WordPress 2

Сегодня многие в интернете пользуются соц сетями, поэтому они важны и могут принести немало посетителей.
В этой статье собраны коды для вставки кнопок разных социальных сетей в WordPress.

Автоматическое добавление разметки Open Graph

Open Graph — протокол, созданный facebook, который упрощает распознавание контента социальными сетями.

Для автоматического добавления данных Open Graph в ваши посты, скопируйте следующий код в файл functions.php.

function wptuts_opengraph_for_posts() {
    if ( is_singular() ) {
        global $post;
        setup_postdata( $post );
        $output = '<meta property="og:type" content="article" />' . "\n";
        $output .= '<meta property="og:title" content="' . esc_attr( get_the_title() ) . '" />' . "\n";
        $output .= '<meta property="og:url" content="' . get_permalink() . '" />' . "\n";
        $output .= '<meta property="og:description" content="' . esc_attr( get_the_excerpt() ) . '" />' . "\n";
        if ( has_post_thumbnail() ) {
            $imgsrc = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'medium' );
            $output .= '<meta property="og:image" content="' . $imgsrc[0] . '" />' . "\n";
        }
        echo $output;
    }
}
add_action( 'wp_head', 'wptuts_opengraph_for_posts' );

После, откройте  header.php и замените тег <html> этим:

<html <?php language_attributes(); ?> prefix="og: http://ogp.me/ns#">

Показ последних твитов на блоге без плагина

Несмотря на то, что существует много плагинов для отображения твитов, вам не обязательно устанавливать плагин для решения этой задачи.

Просто вставьте следующий код в файлы своей темы, туда где хотите их вывести. Не забудьте исправить имя аккаунта в 3 строке. Максимальное количество постов определяется в 4 строке.

<?php
include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed('https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=username');
$maxitems = $rss->get_item_quantity(3);
$rss_items = $rss->get_items(0, $maxitems);
?>

<ul>
<?php if ($maxitems == 0) echo '<li>No items.</li>';
else
// Loop through each feed item and display each item as a hyperlink.
foreach ( $rss_items as $item ) : ?>
<li>
<a href='<?php echo $item->get_permalink(); ?>'>
<?php echo $item->get_title(); ?>
</a>
</li>
<?php endforeach; ?>
</ul>

Добавление кнопки Google+

Google+ — социальная сеть от Google и с каждым днем она набирает популярность. Для того, чтобы добавить кнопку google+ в ваши посты, откройте файл functions.php и вставьте в него следующий код:

add_filter('the_content', 'wpr_google_plusone');
function wpr_google_plusone($content) {
	$content = $content.'<div><g:plusone size="tall" href="'.get_permalink().'"></g:plusone></div>';
	return $content;
}
add_action ('wp_enqueue_scripts','wpr_google_plusone_script');
function wpr_google_plusone_script() {
	wp_enqueue_script('google-plusone', 'https://apis.google.com/js/plusone.js', array(), null);
}

Автоматическое добавление кнопок Twitter и Facebook в записи

Facebook и Twitter одни из самых популярных социальных сетей, они могут принести много трафика на ваш сайт. Чтобы посетители вашего сайта могли легко поделиться вашими записями в Facebook или Twitter, скопируйте этот код в файл functions.php. Код будет показывать кнопки в конце поста.

function share_this($content){
    if(!is_feed() && !is_home()) {
        $content .= '<div>
                    <a href="http://twitter.com/share"
class="twitter-share-button"
data-count="horizontal">Tweet</a>
                    <script type="text/javascript"
src="http://platform.twitter.com/widgets.js"></script>
                    <div>
                        <iframe
src="http://www.facebook.com/plugins/like.php?href='.
urlencode(get_permalink($post->ID))
.'&amp;layout=button_count&amp;show_faces=false&amp;width=200&amp;action=like&amp;colorscheme=light&amp;height=21"
scrolling="no" frameborder="0" style="border:none;
overflow:hidden; width:200px; height:21px;"
allowTransparency="true"></iframe>
                    </div>
                </div>';
    }
    return $content;
}
add_action('the_content', 'share_this');

Показ лучших твитов (favorite tweets) в WordPress

Вставьте этот код туда, где хотите показывать твиты. Не забудьте поправить ссылку в 3 строке.

<?php
    include_once(ABSPATH . WPINC . '/feed.php');
    $rss = fetch_feed('http://twitter.com/favorites/999999.rss');
    $maxitems = $rss->get_item_quantity(3);
    $rss_items = $rss->get_items(0, $maxitems);
?>

<ul>
    <?php if ($maxitems == 0) echo '<li>No items.</li>';
    else
    // Loop through each feed item and display each item as a hyperlink.
    foreach ( $rss_items as $item ) : ?>
    <li>
        <a href='<?php echo $item->get_permalink(); ?>'>
            <?php echo $item->get_title(); ?>
        </a>
    </li>
    <?php endforeach; ?>
</ul>

Количество твитов записи

Если вы хотите показать сколько раз ваш пост твитнули, вставьте следующую функцию в файл functions.php:

function readTwitterShares($url) {
 $s = file_get_contents("http://urls.api.twitter.com/1/urls/count.json".
   "?callback=?&url=".urlencode($url));
   preg_match("#(\"count\"):([0-9]*)#",$s,$ar);
   return isset($ar[2]) ? $ar[2] : 0;
}

Затем используйте этот код в цикле для показа количества твитов поста:

echo readTwitterShares(get_permalink());

Добавление контактов Twitter и Facebook в профиль

WordPress позволяет указывать контакты в профиле, например Jabber, AIM и Yahoo Messenger, но нет возможности указать аккаунты Twitter и Facebook. Данный код позволяет убрать неиспользуемые поля и добавить новые.

Добавьте этот код в файл functions.php.

function new_contactmethods( $contactmethods ) {
    $contactmethods['twitter'] = 'Twitter'; // Add Twitter
    $contactmethods['facebook'] = 'Facebook'; // Add Facebook
    unset($contactmethods['yim']); // Remove YIM
    unset($contactmethods['aim']); // Remove AIM
    unset($contactmethods['jabber']); // Remove Jabber

    return $contactmethods;
}
add_filter('user_contactmethods','new_contactmethods',10,1);

Хочешь получать статьи на почту?

Подпишись на обновления!
* Ваш email не будет разглашен/продан. Вы сможете отписаться в любое время.

2 Комментария

  1. Олег says:

    А как их поставить горизонтально? 🙂

    1. root says:

      Здравствуйте!
      Для горизонтального расположения используйте подобную разметку:

      <div>
      <div style="float:left;">
      </div>
      <div style="float:left;">
      </div>
      <div style="float:left;">
      </div>
      </div>
      

      Во внутренние div’ы вставьте нужный код.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *