今日の人気記事

  1. PHPのダウンロードとインストール - Windows10
  2. Apache + PHPの設定と動作確認 - Windows10
  3. require、require_once - ファイルの取り込み
  4. 定数の基本構文

WordPress 特定カテゴリの投稿をランダムにツイート - PHPスクリプト

当ページのリンクには広告が含まれています。

PHPで、WordPressの投稿をランダムにツイートするスクリプトを紹介します。

WordPressのプラグインを使えばいいんじゃ……と思われる方もいるかもしれません。その通りなんですが、より細やかに設定するにはやはりスクリプトを自作するほうがいいでしょう。

ということで、WordPressの特定カテゴリの投稿をランダムにツイートするPHPスクリプトを紹介します。

特定カテゴリの投稿をランダムにツイート

WordPressには便利な関数がたくさん用意されているので、それらを利用しましょう。関数を利用するために、まずは wp-load.php ファイルを読み込みます。このファイルは、WordPressをインストールしたディレクトリの直下にあります。

// WordPressの関数をロード
require_once('wp-load.php');

次にWordPressのカテゴリID(ここでは、1)を指定し、投稿を配列で取得します。取得には get_posts() を利用します。投稿をランダムにツイートすることを想定しているので、'orderby'=>'rand' を指定しています。

// カテゴリID
$cat_id = 1;

// 指定したカテゴリIDの投稿を配列に
$posts = get_posts(array( 'category'=>$cat_id, 'orderby'=>'rand' ));

次に取得した投稿の配列から、記事のタイトルとパーマリンクを取得します。

// 抽出した記事のタイトル
$post_title = $posts[0]->post_title;

// 抽出した記事のパーマリンク
$post_link  = get_permalink($posts[0]->ID);

これでつぶやく準備完了ですね。あとは「Twitter bot」と同じようにスクリプトを作成すれば、OKです。定期的につぶやかせたい場合は、cronの設定をしましょう。

PHPスクリプト

<?php

// WordPressの関数をロード
require_once('wp-load.php');

// カテゴリID
$cat_id = 1;

// 抽出した記事のパーマリンク
$post_link  = get_permalink($posts[0]->ID);

// 指定したカテゴリIDの投稿を配列に
$posts = get_posts(array( 'category'=>$cat_id, 'orderby'=>'rand' ));

// 抽出した記事のタイトル
$post_title = $posts[0]->post_title;

// メッセージを作成
$message = $post_title . " " . $post_link;

// OAuthスクリプトの読み込み
require_once('twitteroauth/twitteroauth.php');
 
// Consumer key
$consumer_key = "XXXXXXXXXXXXXXXXXXX";
// Consumer secret
$consumer_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
// Access token
$access_token = "123456789-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
// Access token secret
$access_token_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

// つぶやく
$connection = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
$req = $connection->OAuthRequest("https://api.twitter.com/1.1/statuses/update.json","POST",array("status"=> $message ));

?>

サンプルコード の人気記事

  1. PHPサンプルコード集

関連記事(一部広告含む)