CSVファイルのデータを抽出して自動投稿する方法

基本的な流れ

vccw/wordpress/wp-admin/にディレクトリを作成(ここではload_csv) 作成したディレクトリ内に読み込みたいCSVファイル(data.csv)とデータを抽出するためのPHPファイル(upload.php)を保存する。

以下のコードがデータを読み取り、自動投稿するためのコードである。

<?php
require('../../wp-blog-header.php');
$file = new SplFileObject('data.csv'); //csvファイルの読み込み
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $line) {
    $records[] = $line;
}

for ($i=1 ; $i<count($records);$i++){ 
    var_dump($records[$i][0]); //出力(出力したい情報)

    $post_value = array(
        'post_title' => $records[$i][0], //post title
        'post_content' => '[ctf format=0]', //post content
        'post_status' => 'publish' //公開ステータス
    );

    $insert_id = wp_insert_post($post_value);

    if( $insert_id != 0 ){
        update_post_meta($insert_id, 'name',$records[$i][0]); //''内はカスタムフィールドテンプレート設定したkey
        update_post_meta($insert_id, 'fee',$records[$i][1]); 
        echo('テスト'); //確認のためなので無くても良い
        update_post_meta($insert_id, 'appoint',$records[$i][2]);
        update_post_meta($insert_id, 'day',$records[$i][3]);
        var_dump('Successfully Uploaded!');
    }
    else{
        var_dump('Error');
    }
}

?>

その後、yourname.local/wp-admin/load_csv/upload.php/にアクセスし、ブラウザ上でPHPを実行。 すると以下の画面のように表示され、Successfully Uploaded確認できる。

これで自動投稿の完了である。