【WordPress】ツイッターのハッシュタグをカテゴリー・タグ名から作成する例
WordPressでサイトを作成していると、Twitter(ツイッター)のシェアボタン・共有リンクを設置する場合があると思います。
今回は、そのツイッターの共有リンクをWordPressのサイトで作成する例となります。
ツイッター共有リンクのハッシュタグをカテゴリー・タグ名から作成
ツイッターの共有リンクでは、共有する投稿内に以下の4点が含まれる形となります。
- シェアするURL
- ページタイトル
- ハッシュタグ(カテゴリー・タグ名から作成)
- ツイッターユーザー名
ツイッターの共有リンクでは、URLパラメータ(クエリ文字列)を設定することにより、ハッシュタグをシェアする投稿に含めることができます。
例では、そのハッシュタグを投稿に設定されているカテゴリー・タグ名を使い作成します。
コードの例
コードの例は以下となり、投稿内でツイッターの共有リンクを表示したい場所に記述します。
<?php
// 現在のページURLを取得してURLエンコード
$url_encode = urlencode( get_permalink() );
// 現在のページのタイトルを取得してURLエンコード
$title_encode = urlencode( get_the_title() );
// カテゴリー・タグ名を格納する変数$hashtagsを定義
$hashtags = NULL;
// ループですべてのカテゴリー名を取得
$categories = get_the_category();
foreach( $categories as $category ) {
$hashtags .= $category->name . ',';
}
// ループですべてのタグ名を取得
$posttags = get_the_tags();
if ( $posttags ) {
foreach( $posttags as $tag ) {
$hashtags .= $tag->name . ',';
}
}
// 末尾のカンマを削除
$hashtags = rtrim( $hashtags, ',' );
// 取得したカテゴリー・タグ名をURLエンコード
$tags_encode = urlencode( $hashtags );
?>
<!-- Twitterの共有リンク -->
<p class="share-twitter">
<a target="_blank" href="<?php echo esc_url( 'https://twitter.com/share?url=' . $url_encode . '&text=' . $title_encode . '&via=yic666kr&hashtags=' . $tags_encode ); ?>">Twitterでシェア</a>
</p>
コードの簡単な説明
今回の例では、ツイッターの共有リンクのURLパラメータは、以下のような形式となります。
https://twitter.com/share?url=「シェアするURL」&text=「ページタイトル」&via=「ツイッターユーザー名」&hashtags=「ハッシュタグ名」
例のURLパラメータの値は、それぞれ次の値を指定しています。
- 「シェアするURL」は、get_permalink()で取得し指定。
- 「ページタイトル」は、get_the_title()で取得し指定。
- 「ツイッターユーザー名」は、ツイッターユーザー名の@を除いて文字列で指定。
- 「ハッシュタグ名」は、 get_the_category()、get_the_tags()でカテゴリー・タグ名を取得し指定。
URLパラメータで使用するため、テンプレートタグで取得した値は、urlencode関数でURLエンコードを行っています。
また、今回の例で使用したカテゴリー・タグ名の取得方法については、以下のリンク先を参考にしてみてくささい。
urlencode関数について
urlencode関数は、URLに使用できない文字列を、URLに使用できる文字列に変換(URLエンコード)することができます。また、WordPress以外でも使用できるPHP関数となります。
ツイッターの共有リンクのURLパラメータ一覧
以下は、今回使用したものも含む、ツイッターの共有リンクのURLパラメータ一覧となります。
パラメータ名 | パラメータに指定するデータ |
text | シェアする文章を指定 |
url | シェアするページのURLを指定 |
hashtags | ハッシュタグを指定。複数の場合はカンマで区切る |
via | メンションするユーザー名を指定 |
related | 投稿後にフォローを促す画面に表示するユーザーを指定 |