WordPressのタグ情報を取得してTwitter-Botにハッシュタグを付ける方法

social-media-640543_1280
LINEで送る
Share on GREE
Share on LinkedIn

毎日書いているブログをTwitterに配信しているのだが、ちゃんとタグ管理をしているので、SNSのハッシュタグを付けたら、どの位PVをに影響するのかを確認してみたくて、PHPでコードを書いてみた。

ブログをwordpressで運用している人で、タグ管理をしている人は、是非参考にしてみてください。

やりたい事

TwitterBotは以前書いた記事を参照してもらうとして、
Twitterのbotを作る #1「下準備編:投稿だけなら簡単にできる」

今現在の仕様は、「ブログの記事タイトル、bitlyで変換したURL、ブログ画像」をTweetしているのだが、これにハッシュタグを追加する事にする。

プログラムの手順は以下の通り。

1. ブログの記事IDを取得
2. 記事IDから、タグIDを取得(複数)
3. タグIDを文字列に変換

Before -> aAfter

スクリーンショット 2017-05-19 15.26.49
↓↓↓↓↓↓
スクリーンショット 2017-05-19 15.26.58

字が小さくて分かりにくいかもしれませんが、このようにハッシュタグを挿入します。

調査

データベース構造 | WordPress

上記のページでWordpressのDB構成を確認。
今回はタグに関する箇所なんだが、該当するテーブルは「term」と名称に入っているのがそれに当たるようだ。

SQLコマンドで実験

上記の手順をSQL文で実行してみる。

まずは、サーバーにSSHでアクセスして、mysqlにログインしておく。
次に、事前にデータベースにアクセスしておく。※wordpressの箇所はDB名

ちなみに、wordpressの設置の仕方でtable名が変わっている可能性があるので、table名を確認してコマンド実行してください。

1. ブログの記事IDを取得

記事IDの取得※事前にランダムで完了(single num) / table : news_posts

上記コマンドで投稿記事から1つランダムでピックアップされます。

2-1. タグIDを取得(複数)

記事IDから、対象のタグIDを取得(array) / table : news_term_relationships

1番で取得した記事IDをコマンドに入れ込むと、対象のタグID一覧が取得できます。
注意点として、この場合カテゴリとタグが一緒に取得されます。

2-2.タグのみを抽出

タグID(array)から、”post_tag”のみを抽出(categoryは除外) (array)/ table : news_term_taxonomy

2番で取得したタグIDをタグ名称に変換しています。
この時に、taxonomyカラムの値が「post_tag」となっているのがタグ部分で「category」となっているのはカテゴリです。
とりあえず、カテゴリは除外しますが、取り込みたい場合は、このwhereをなくせばいいだけです。

3. タグIDを文字列に変換

4. タグID(array)から、名称を取得(array) / table : news_terms

タグIDと名称は別管理されているので、上記でIDを名前に変換できます。

上記を全てまとめる

上記を別々に取得してもいいんですが、せっかくSQL使っているので、記事IDからタグ名一覧の出力を一括で行なってみます。
単純にSQL文を連結するだけなんですけどね・・・

PHPでコーディング

botコード全体は載せられないので、抜粋した箇所のみを掲載します。

BOT部分は書いていませんが、Wordpressのタグ情報取得はこのようにして実現できます。
最後のwhileでハッシュタグ化しています。
$row4をwhileで繰り返さないと複数情報が取り出せません。

ちなみに、この情報追加がPVやSEOに与える影響が分かってきたらそれもレポートしたいと思います。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*