【WordPress × Twitter】過去記事を自動ツイートする例(プラグイン不要)PHP

今回は、WordPressとTwitterを連携する例となり、WordPressサイト内の過去記事をランダムで、定期的に自動ツイートする例となります。

WordPressの過去記事を定期的に自動ツイートする例

例では、PHPのTwitterOAuthライブラリでTwitter APIを利用し、WordPressの過去記事をランダムでツイートするスクリプトを作成します。そして、そのPHPスクリプトをレンタルサーバーのcronから実行し、自動でツイートさせます。

以下、手順となります。

TwitterOAuthをダウンロード

Twitter API を操作できるPHPのTwitterOAuthライブラリをダウンロードします。

TwitterOAuthライブラリの利用、ダウンロード方法については、以下のリンク先を参考にしてみてください。

今回の例では、以下のリンク先から「twitteroauth-master.zip」をダウンロードし解凍します。

GitHub - abraham/twitteroauth

WordPressの過去記事をツイートするPHPスクリプトを作成

TwitterOAuthを利用し、WordPressの過去記事をランダムでツイートするPHPスクリプトのファイルを作成します。

以下が例のスクリプトとなり、任意のPHPファイル名をつけて保存します。

<?php
// WordPress関数を利用するためwp-load.phpを読み込み
require __DIR__ . '/wp-load.php';

// 投稿を取得
$args = array(
    // 1件の投稿  
	'posts_per_page' => 1,
    // ランダム順
    'orderby' => 'rand'
);
$cron_query = get_posts( $args );

// 先頭の投稿データをセット
$post = $cron_query[0];
setup_postdata( $post );

// ツイートで利用する投稿データを取得
$link = get_permalink();
$title = get_the_title();

// TwitterOAuthライブラリの読み込み
require 'twitteroauth-master/autoload.php';
// TwitterOAuthクラスをインポート
use Abraham\TwitterOAuth\TwitterOAuth;

// Twitter APIを利用するための認証情報。xxxxxxxxの箇所にそれぞれの情報をセット
$CK = 'xxxxxxxx'; // Consumer Keyをセット
$CS = 'xxxxxxxx'; // Consumer Secretをセット
$AT = 'xxxxxxxx'; // Access Tokenをセット
$AS = 'xxxxxxxx'; // Access Token Secretをセット

// TwitterOAuthクラスのインスタンスを作成
$connect = new TwitterOAuth( $CK, $CS, $AT, $AS );

// 投稿するツイートをセット
$result = $connect->post(
    'statuses/update',
    array(
        'status' => '<過去記事>' . $title . '\n' . $link
    )
);

if( $connect->getLastHttpCode() == 200 ){
	// APIリクエストが成功時の処理
}else{
	// APIリクエストがエラー時の処理
}

// メインクエリの投稿データに戻す
wp_reset_postdata();

TwitterOAuthライブラリとPHPファイルをサーバーにアップロード

ダウンロードしたTwitterOAuthライブラリと、作成したPHPスクリプトのファイルを、WordPressがインストールしてあるサーバーにアップロードします。

今回の例では、サーバー内のWordPressのルートディレクトリ(wp-configなどがあるディレクトリ)に、「twitteroauth-master」フォルダと、PHPファイルをアップロードします。

PHPファイルをcronに設定

最後に上記で作成したPHPスクリプトのファイルを、サーバーのcron(クーロン)に設定します。それにより、作成したPHPスクリプトを定期的に実行できます。

cronの設定については以下のリンク先を参考にしてみてください。

作成したPHPスクリプトの説明

以下、WordPressの過去記事をランダムでツイートするPHPスクリプトのポイントなる箇所の説明となります。

WordPress関数の利用する設定

まず、WordPressで利用できる関数を、WordPress外部のPHPファイルで利用するためwp-load.phpを読み込みます。

例のソースコードでは以下の箇所となります。

ソースコード2行目

// WordPress関数を利用するためwp-load.phpを読み込み
require __DIR__ . '/wp-load.php';

また、マルチサイトでwp-load.phpを呼び出す際には、追加のコードが必要となります。詳しくは以下のリンク先を参考にしてみてください。

外部ファイルにwp_load.phpを読み込んだ際のエラーについて | WordPress.org

ツイートする記事の情報を取得|get_posts()

次に、ツイートする記事の情報を、WordPressの投稿の中からget_posts()で取得します。取得する条件はランダムで1件を表示としています。

例のソースコードでは以下の箇所となります。

ソースコード7行目

// 投稿を取得
$args = array(
    // 1件の投稿  
	'posts_per_page' => 1,
    // ランダム順
    'orderby' => 'rand'
);
$cron_query = get_posts( $args );

// 先頭の投稿データをセット
$post = $cron_query[0];
setup_postdata( $post );

// ツイートで利用する投稿データを取得
$link = get_permalink();
$title = get_the_title();

get_posts()については、以下のリンク先を参考にしてみてください。

TwitterOAuthを利用しツイートする内容を作成

最後に、TwitterOAuthを利用し、上記で取得したWordPressの投稿データから、ツイートする内容を作成します。

例のソースコードでは以下の箇所となります。

ソースコード24行目

// TwitterOAuthライブラリの読み込み
require 'twitteroauth-master/autoload.php';
// TwitterOAuthクラスをインポート
use Abraham\TwitterOAuth\TwitterOAuth;

// Twitter APIを利用するための認証情報。xxxxxxxxの箇所にそれぞれの情報をセット
$CK = 'xxxxxxxx'; // Consumer Keyをセット
$CS = 'xxxxxxxx'; // Consumer Secretをセット
$AT = 'xxxxxxxx'; // Access Tokenをセット
$AS = 'xxxxxxxx'; // Access Token Secretをセット

// TwitterOAuthクラスのインスタンスを作成
$connect = new TwitterOAuth( $CK, $CS, $AT, $AS );

// 投稿するツイートをセット
$result = $connect->post(
    'statuses/update',
    array(
        'status' => '<過去記事>' . $title . '\n' . $link
    )
);

if( $connect->getLastHttpCode() == 200 ){
	// APIリクエストが成功時の処理
}else{
	// APIリクエストがエラー時の処理
}

// メインクエリの投稿データに戻す
wp_reset_postdata();

コメント投稿またはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。
Twitterで返信する場合はこちらから。

また、コメントは承認制となります。