Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Verite Timeline JSON controller for JSON API WordPress Plugi

By: miguelpeixe on May 1st, 2012  |  syntax: PHP  |  size: 2.75 KB  |  views: 1,898  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <?php
  2.  
  3. /*
  4.  
  5.         JSON Controller for JSON API WordPress Plugin to return posts in Timeline format for Verite Timeline WordPress Plugin
  6.  
  7.         Usage:
  8.         http://example.com/api/timeline/category_posts/?category_id=123&post_type=timeline&amount=10&main_post_id=456
  9.  
  10.         Default values:
  11.         category_id = null
  12.         post_type = 'post'
  13.         amount = -1 (all posts)
  14.         main_post_id = first post from query, ordered by date in ascending order (the main post should be an introduction to the timeline being viewed)
  15.  
  16.         Content values can be changed to support custom post meta for enhanced usage.
  17.  
  18. */
  19.  
  20. class JSON_API_Timeline_Controller {
  21.  
  22.         public function category_posts() {
  23.                 global $json_api;
  24.                 $json = array();
  25.  
  26.                 // get attributes
  27.                 $category_id = $json_api->query->category_id;
  28.                 $post_type = $json_api->query->post_type;
  29.                 $amount = $json_api->query->amount;
  30.                 $main_post_id = $json_api->query->main_post_id;
  31.  
  32.                 if(!$post_type) $post_type = 'post';
  33.                 if(!$amount) $amount = -1;
  34.  
  35.                 $posts = get_posts(array('post_type' => $post_type, 'numberposts' => $amount, 'category' => $category_id, 'orderby' => 'post_date', 'order' => 'DESC'));
  36.  
  37.                 if($main_post_id) $main_post = get_post($main_post_id);
  38.                 else  {
  39.                         $main_post = $posts[0];
  40.                         unset($posts[0]);
  41.                 }
  42.  
  43.                 if($main_post) {
  44.  
  45.                         // setting first (main) post
  46.  
  47.                         $json['timeline'] = array();
  48.  
  49.                         $json['timeline']['headline'] = $main_post->post_title;
  50.                         $json['timeline']['type'] = 'default';
  51.                         $json['timeline']['startDate'] = date('Y,m,d', strtotime($main_post->post_date));
  52.                         $json['timeline']['text'] = $main_post->post_excerpt;
  53.  
  54.                         // example of media asset using the post thumbnail
  55.                         if(has_post_thumbnail($main_post->ID)) {
  56.  
  57.                                 $thumbnail_id = get_post_thumbnail_id($main_post->ID);
  58.                                 $thumbnail_src = wp_get_attachment_image_src($thumbnail_id, 'medium');
  59.                                 $json['timeline']['asset']['media'] = $thumbnail_src[0];
  60.                                
  61.                         }
  62.  
  63.                         if($posts) {
  64.                                 $json['timeline']['date'] = array();
  65.                                 $i = 0;
  66.                                 foreach($posts as $post) {
  67.  
  68.                                         $json['timeline']['date'][$i]['startDate'] = date('Y,m,d', strtotime($post->post_date));
  69.                                         $json['timeline']['date'][$i]['endDate'] = date('Y,m,d', strtotime($post->post_date));
  70.                                         $json['timeline']['date'][$i]['headline'] = $post->post_title;
  71.                                         $json['timeline']['date'][$i]['text'] = $post->post_excerpt;
  72.  
  73.                                         // example of media asset using the post thumbnail
  74.                                         if(has_post_thumbnail($post->ID)) {
  75.  
  76.                                                 $thumbnail_id = get_post_thumbnail_id($post->ID);
  77.                                                 $thumbnail_src = wp_get_attachment_image_src($thumbnail_id, 'medium');
  78.  
  79.                                                 $json['timeline']['date'][$i]['asset']['media'] = $thumbnail_src[0];
  80.  
  81.                                         }
  82.  
  83.                                         $i++;
  84.  
  85.                                 }
  86.  
  87.                                 return $json;
  88.  
  89.                         } else return 'Posts not found';
  90.  
  91.                 } else return 'Main post not found';
  92.  
  93.         }
  94.  
  95. }
  96.  
  97. ?>
clone this paste RAW Paste Data