vccwでphpのコードを実行する方法

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を見ると投稿数が増えているはず。