WordPress — Как вывести все сегодняшние сообщения по всем категориям для json-api

#json #wordpress #api #wp-list-categories

#json #wordpress #API #wp-список-категории

Вопрос:

Я настраиваю плагин WordPress, JSON API. Я хочу вывести:

Отобразить все опубликованные сегодняшние сообщения для каждой категории в одном большом дереве JSON.

IE:

 Concept output:

Category 1  
Post 1  
Post 2

Category 2  
No posts

Category 3  
Post 1  
Post 2  
Post 3
  

Я следую руководству о том, как собирать последние сообщения по категориям, однако, похоже, это указывает на то, что мне нужно выполнить 2 цикла: один для захвата всех категорий, а затем другой для захвата каждого сообщения в этой категории.

Моя пользовательская функция в настоящее время отлично обрабатывает категории, но я не уверен, как объединить два цикла в дерево JSON, используя текущий плагин JSON API.

 // This is in the introspector.php file
public function get_todays_posts($today)
{
    global $wpdb;

    /* // Show posts for category 5 - this works, but it doesn't show the category name
    $q = query_posts('cat=5amp;year='.$today["year"].'amp;monthnum='.$today["month"].'amp;day=' .$today["day"].'amp;showposts=-1amp;orderby=post_dateamp;order=desc');
*/

    // output for this is below
    $sql = "SELECT * FROM gc_terms AS wterms INNER JOIN gc_term_taxonomy AS wtaxonomy ON ( wterms.term_id = wtaxonomy.term_id ) WHERE wtaxonomy.taxonomy = 'category'";

    $data = $wpdb->get_results(($sql));

    $results = array();
    foreach ($data as $row)

    {
    $results[] = new JSON_API_Category($row);
    }

    return($results);
} // end function
  

Мой вывод:

 {
  "status": "ok",
  "count": 17,
  "count_total": 4,
  "pages": 1,
  "posts": [
    {
      "id": 1,
      "slug": "general",
      "title": "General",
      "description": "",
      "parent": 0,
      "post_count": 0
    }
 // etc
}
  

В идеале я хотел бы вывести все сегодняшние сообщения по каждой категории, но проблема, с которой я сталкиваюсь, заключается в том, как выполнить два цикла и объединить их в плагин JSON API.

Любая помощь или рекомендации по этому вопросу были бы весьма признательны.

Спасибо.

Редактировать:

Я нашел метод, который я настроил, который приближает меня на шаг ближе

 global $json_api;

$category = $json_api->introspector->get_category_by_id(5);
if (!$category) {
  $json_api->error("Not found.");
}

$posts = $json_api->introspector->get_posts(array(
    'cat' => $category->id,
    'post_status' => 'publish',
    'year' => 2011,
    'monthnum' => 10,
    'day' => 01,
    'orderby' => 'post_date',
    'order' => 'ASC'
));

return $this->posts_object_result($posts, $category);
  

Однако это неверно, потому что сообщения не относятся к категории, как видно на этом скриншоте из JSONPad.

скриншот jsonpad

Я понимаю, что мне нужно перебирать внешние категории, а затем их дочерние элементы, чтобы получить желаемый результат; однако проблема заключается в том, чтобы заставить json-api понять, как объединять массивы в действительное дерево JSON.

Ответ №1:

Я решил не решать эту проблему, получая категории из JSON API из моего приложения, а затем получая сообщения, относящиеся к моей категории, по мере необходимости. когда они мне понадобятся.

Это немного долгий путь, но пока сойдет.