ニケッチャニッキ

はてなブログ・WordPressカスタマイズ・Androidプログラミング

コピペでOKプラグインなし!押したくなる…かもしれないシェアボタン

アイキャッチ画像を背景に使ったシェアボタンボックスを作ってみました。

イメージ画像

シェアボタンの作り方

HTML

FontAwesomeを既に導入している方はそのままコピペでOKです。

FontAwesomeの導入がまだの方はこちらの記事に導入方法を書いてるので、参考にしてみてください。

<?php 
$thumbnail_id = get_post_thumbnail_id(); 
$thumbnail_url = wp_get_attachment_image_src( $thumbnail_id , 'full' )[0];
$url_encode=urlencode(get_permalink());
$title_encode=urlencode(get_the_title());
?>
<div class="share_box" style="background-image: url('<?php 
    if(has_post_thumbnail()) : 
        echo $thumbnail_url;
    else :
            echo get_stylesheet_directory_uri(); ?>/images/no-img.png<?php 
    endif; ?>')">
    <div class="share_content">
        <p class="futomoji"><?php the_title();?></p>
        <p>この記事が気に入ったらシェアしてね</p>
        <!--ツイートボタン-->
        <a onclick="window.open('//twitter.com/intent/tweet?url=<?php echo $url_encode ?>&text=<?php echo $title_encode ?>&tw_p=tweetbutton', '', 'width=500,height=450'); return false;" class="share_btn"><i class="fa fa-twitter"></i>ツイート</a>
        <!--Facebookボタン-->      
        <a href="//www.facebook.com/sharer.php?src=bm&u=<?php echo $url_encode;?>&t=<?php echo $title_encode;?>" target="_blank" class="share_btn" ><i class="fa fa-facebook"></i>シェア</a>
        <!--はてブボタン-->      
        <a href="//b.hatena.ne.jp/entry/<?php the_permalink(); ?>" data-hatena-bookmark-layout="simple" title="<?php the_title(); ?>" class="share_btn" target="_blank" ><span class="htbmark">B!</span>はてブ</a>
    </div>    
</div>

現在のテーマのimagesフォルダにno-img.pngを準備するか、既に用意あるno-img用の画像のURLに書き換えて使ってください。

wp_get_attachment_image_srcはアイキャッチ画像のURLやサイズなどを取得できる関数です。

戻り値は配列になっており、次の値が返ってきます。

  • [0] => url
  • [1] => width
  • [2] => height
  • [3] => リサイズされいている場合は true、元のサイズの場合は false

返ってきたURLをHTMLに書き出す場合はechoする必要があります。

似たような関数にthe_post_thumbnailがありますが、こちらwidthやheightが指定されたimgタグが返ってきます。

the_post_thumbnailはechoしなくても<?php the_post_thumbnail(); ?>と書くだけでその場所にアイキャッチ画像が表示されます。

css

/*-- 記事下シェアボックス --*/
.share_box{
    margin-bottom:20px;
    border-radius:5px;
    background-position: center;
    background-size: cover;
    position: relative;
    width:100%;
    overflow: hidden;
}
.share_box::before {
    content: '';
    background-color: rgba(0,0,0,0.6);
    background-image: linear-gradient(90deg, rgba(0,0,0,.15) 50%, transparent 50%), linear-gradient(rgba(0,0,0,.15) 50%, transparent 50%);
    background-size: 2px 2px;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
.share_content{
    color:#FFF;
    position:relative;
    padding:50px 0;
    text-align:center;
}
.share_btn{
    display: inline-block;
    margin:5px 2%;
    width: 25%;
    height: 30px;
    text-decoration: none;
    text-align: center;
    font-size: 14px;
    line-height: 30px;
    color:#fff;/*-- ボタンの文字の色はここで設定 --*/
    font-weight: bold;
    background:#56BACC;/*-- ボタンの色はここで設定 --*/
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.29);
    transition: .3s;
}
.share_btn .fa,
.share_btn .htbmark{
    display:inline-block;
    font-size:16px;
    line-height:30px;
    margin-right:5px;
}

.share_btn:hover{
    -webkit-transform: translateY(-5px);
    -ms-transform: translateY(-5px);
    transform: translateY(-5px);
    background: #cb5393;/*-- マウスオーバーしたときのボタンの色 --*/
    box-shadow: 4px 4px 2px rgba(0, 0, 0, 0.29);
}
.futomoji{
    font-weight:bold;
}

レスポンシブに対応させてる場合はボタンの幅を80%くらいにして、タブレット以上は25%とかにしてみてください。