WordPressのCustom TenplateにCSVファイルの値を取り込む方法

こんばんは、本日はタイトル通りWordPressのCustom TenplateにCSVファイルの値を取り込む方法を勉強したので記録しておきたいと思います。

WordPressに投稿しつつCustom Templateに書き込むコード

この操作については特に難しいことはなく、Wordpressにあるfunction.phpというファイルに次のようなコードを書き加えることです。

また、その際に取り込みたいscvファイルのアドレスを用意しておいてください。

 require('wp-blog-header.php');
    $fp = fopen('{csvファイルのアドレス}','r');//csvファイルを開く

    //以下自動投稿。contentの本文はCustom field templateのフォーマットを示す     
        $post =array(
                     'post_author'=>1,
                     'post_content' => '[cft format=1]',
                     'post_status' => 'publish',
                     'post_title' => 'test'
                     );
        //以下カスタムフィールドにcsvファイルの内容を代入する。ファイルが終了するまで繰り返される。   ' ' 
        while( !feof($fp) ){
            $csv = fgetcsv($fp);
            $kankou = array(
                            "place" => $csv[1],
                            "placeDetail" => $csv[2],
                            "date" => $csv[3]
                            );
            $postid =wp_insert_post($post);
            if($postid != 0){
                update_post_meta($postid,"place",$kankou['place']);
                update_post_meta($postid,"placeDetail",$kankou['placeDetail']);
                update_post_meta($postid,"date",$kankou['date']);
            };
        } ;

        // csvファイルを閉じる
        fclose($fp);

今回参考にしたサイトは下記のとおりです。

csvデータをカスタムフィールドに投稿する WordPressでwp_insert_post関数を利用した投稿方法。(カスタムフィールド、WP to Twitter対応版)

解説のようなもの

wp_insert_post($post);という関数は$postで宣言した投稿情報をもとに投稿まで行い、投稿した記事のIDを出力する関数であるそうです。

こうしてwp_insert_post($post);で帰ってきた記事IDを元にupdate_post_meta($postid,"place",$kankou['place']);関数で記事中のcustomtemplateの上書きを行うそうです。