Wordpress - Как вывести все сегодняшние сообщения под всеми категориями для json-api - PullRequest
0 голосов
/ 15 октября 2011

Я настраиваю плагин 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=5&year='.$today["year"].'&monthnum='.$today["month"].'&day=' .$today["day"].'&showposts=-1&orderby=post_date&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.

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

Спасибо.

EDIT:

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

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 screenshot

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

1 Ответ

0 голосов
/ 19 октября 2011

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

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

...