wordpressにコードから投稿をする方法
例えば、csvファイルからデータを抽出して、自動でカスタムフィールドにデータを入れて投稿したい場合に使える。
phpファイルを作成する
まず、phpのファイルをプロジェクトの、vccs/wordpress/{任意のフォルダ名}/{任意のファイル名}、となるように作成。
phpファイルの中身を書く
今回はcsvファイルからデータを抽出して、自動でカスタムフィールドにデータを入れて投稿したいので以下のようなコードになった。
<?php require('../wp-blog-header.php'); $flatlng = fopen('./latlngtest.csv', 'r'); $post = array( 'post_author' => 1, 'post_content' => '[cft format=0]', 'post_status' => 'publish', 'post_title' => 'Address' ); while (!feof($flatlng)) { $csvlatlng = fgetcsv($flatlng); $address = array( 'city' => $csvlatlng[3], 'town' => $csvlatlng[5], 'lat' => $csvlatlng[6], 'lng' => $csvlatlng[7], 'crimes' => 0 // test ); $postid = wp_insert_post($post); if ($postid != 0) { update_post_meta($postid, 'City', $address['city']); update_post_meta($postid, 'Town', $address['town']); update_post_meta($postid, 'Latitude', $address['lat']); update_post_meta($postid, 'Longitude', $address['lng']); update_post_meta($postid, 'Crimes', $address['crimes']); } } fclose($flatlng); ?>
一つ気をつけなければいけないのは日本語のデータファイルの場合、文字化けする可能性があること。 これは、使うデータファイルの文字コードをutf-8に指定することで解決。
実行
実行する際はブラウザの検索バーに、{vccwで登録したドメイン名}/{任意のフォルダ名}/{任意のファイル名}、となるように打ち込んでEnter。 Wordpressのpostsを見ると投稿数が増えているはず。