Import iTunes JSON into WordPress

I am working on a little project that parses the JSON feeds of iTunes and imports the categories into WordPress. Here’s the relevant snippet.

I am using wp_remote_get here, a much simpler alternative to using CURL or file_get_content() of PHP. WordPress has built-in functions for inserting categories – wp_insert_category and wp_create_category – but they aren’t working in 3.5.1 and hence had to use wp_insert_term.


  // Written by Amit Agarwal

  $url = "http://itunes.apple.com/WebObjects/MZStoreServices.woa/ws/genres?id=20";

  $data = wp_remote_retrieve_body (wp_remote_get($url));
  $json = json_decode($data, true);

  foreach ($json['26']['subgenres'] as $item) {
        $id = wp_insert_term ( $item['name'], 
                'category', array (
                'slug' => $item['url'], 
                'description' => $item['id']));

        if ( isset ($item['subgenres']) ) {
                foreach ($item['subgenres'] as $sub) {
                    wp_insert_term ( $sub['name'], 'category',
                        array ('slug' => $sub['url'],
                               'description' => $sub['id'],
                               'parent' => $id["term_id"]
                               )
                     );
                }
        }

}