プラグインなしでWordPressのSNSボタンを追加する方法
wordpressのカスタマイズで、
使用しているテーマ内にsnsのシェアボタン機能がデフォルトでついていなかったようなので、
文字によるシンプルなSNSボタンを作るための備忘録です。
ボタン設置のためにインストールするプラグインを増やしたくない場合にも最適だと思います!
sns.phpを新規で作る
まずはじめに、Filezillaなどの転送ソフトを使って、
/wp-content/themes/適用しているテーマ名 の場所に
sns.phpのファイルを作って、SNSシェアボタンの下記内容を記述します。
今回、Twtitter、 Facebook、Pinterest、Line のボタンを入れました。
<?php
$url_encode=urlencode(get_permalink());
$title_encode=urlencode(get_the_title()).'|'.get_bloginfo('name');
?>
<div class="snsshare">
<ul>
<li>
<!-- Twitter -->
<a class="btn--twitter" href="//twitter.com/intent/tweet?url=<?php echo $url_encode ?>&text=<?php echo $title_encode ?>&tw_p=tweetbutton" target="_blank">
Twitter </a>
</li>
<li>
<!-- Facebook -->
<a class="btn--facebook" href="//www.facebook.com/sharer.php?src=bm&u=<?php echo $url_encode;?>&t=<?php echo $title_encode;?>" target="_blank">
Facebook </a>
</li>
<li>
<!-- Pinterest -->
<a class="btn--pinterest" href="//pinterest.com/pin/create/button/?url=<?php echo $url_encode;?>" target="_blank">
Pinterest </a>
</li>
<li>
<!-- Line -->
<a class="btn--line" href="//social-plugins.line.me/lineit/share?url=<?php echo $url_encode;?>" target="_blank">
LINE </a>
</li>
</ul>
</div>
ファイルの詳細
$url_encodeには、get_permalink()で投稿記事のURLリンクを取得しています。
$title_encodeでは、get_the_title()で投稿タイトルを取得し、
get_bloginfo(‘name’) で、wordpressの管理画面「設定」→「一般」で設定したサイトのタイトルを取得しています。
それぞれの値の取得後、さらにurlencode()でURLエンコードをかけた値をセットしています。
シェアボタンの<a>タグ内の<?php echo $url_encode;?>と<?php echo $title_encode;?>によって、
その取得した値を表示させています。
style.cssに、デザインを記載
次に、sns.phpの見た目を整えるため、style.cssにレイアウトを記述します。
今回PCとタブレット幅では横に4つ、 SP幅では横に2つ並ぶように、calc関数を使って幅を調節しました。
/*SNS share*/
.snsshare ul{
margin:0;
list-style-type:none;
display:flex;
flex-wrap:wrap;
gap:10px;
}
.snsshare li{
width: calc(25% - 30px/4);
}
@media screen and (max-width: 414px) {
.snsshare li{
width: calc(50% - 5px);
}
}
.snsshare a{
box-sizing: border-box;
display: block;
padding: .6em 0;
border-radius: 3px;
color: white;
text-decoration: none;
text-align: center;
font-weight: bold;
}
.btn--twitter{
background: #55acee;
}
.btn--facebook{
background: #3b5998;
}
.btn--pinterest{
background: #c60120;
}
.btn--line{
background: #00b900;
}
sns.phpの内容を表示させる
sns.phpのファイルが用意できたので、あとは、表示させたい記事テンプレートの箇所に下記を追加すれば、記事の好きな場所に表示することが可能です!
<?php get_template_part( 'sns' ); ?>