今回は、Gatsbyで作られたブログにSNSシェアボタンを導入したいと思います。 SNS関連のライブラリはいくつかありますが、今回はreact-shareを利用します。
gatsby
でブログ環境を作成済※今回の記事はこのブログにSNSシェアボタンを導入した際の情報を公開するため、ファイル名がgatsby-starter-netlify-cms
で作られたもの前提となっています。自作もしくは他スターターを利用の方は、適宜ファイル名を読み替えてください。
下記コマンドでreact-share
をインストールしましょう。
Facebook
やTwitter
をはじめとしたSNS
へのリンクボタンのコンポーネンがまとまっているライブラリです。
yarn add react-share
あとは投稿記事のテンプレートにシェアボタンのコンポーネントを配置するだけです。
このブログではFacebook
,LINE
,LinkedIn
,Twitter
の4種へのシェアボタンを追加します。
下記の例では、それらをまとめてSNSSection
というコンポーネントにしています。
// ...
import {
FacebookShareButton,
FacebookIcon,
LineShareButton,
LineIcon,
LinkedinShareButton,
LinkedinIcon,
TwitterShareButton,
TwitterIcon
} from 'react-share';
// SNSシェアボタンセクション
// title : 記事タイトル
// articleUrl : 記事URL
const SNSSection = ({title
, articleUrl}) => {
return (
<div>
<FacebookShareButton url={articleUrl}>
<FacebookIcon size={50} round />
</FacebookShareButton>
<LineShareButton url={articleUrl} >
<LineIcon size={50} round />
</LineShareButton>
<LinkedinShareButton url={articleUrl} >
<LinkedinIcon title={title} size={50} round />
</LinkedinShareButton>
<TwitterShareButton title={title} via="@inouetakumon" url={articleUrl} >
<TwitterIcon size={50} round />
</TwitterShareButton>
</div>
)
}
あとはこのSNSSection
を投稿記事の好きな位置に配置するだけです。
同じくblog-post.js
のBlogPostTemplate
に追記します。
さらに多少スタイルに手を加えることで、下記のようにシェアボタンが表示されます。
これで問題なく記事のシェアはできるのですがgatsby-starter-netlify-cms
で作った記事はデフォルトではURLに日本語が含まれる可能性があり、エンコードされたURL
でSNS
に投稿されてしまいます。
その場合はgatsby-starter-netlify-cmsのブログ記事のURLを指定できるようにするの記事を参考に、記事URLを自身で設定するのがオススメです。
今回はreact-share
を使ってSNS
へのシェアボタンをGatsby
ブログに導入しました。
検索流入以外の導線を作るという意味ではSNS
は非常に有効な手段といえるので、早いうちに導入するのがオススメです!