#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.
Я понимаю, что мне нужно перебирать внешние категории, а затем их дочерние элементы, чтобы получить желаемый результат; однако проблема заключается в том, чтобы заставить json-api понять, как объединять массивы в действительное дерево JSON.
Ответ №1:
Я решил не решать эту проблему, получая категории из JSON API из моего приложения, а затем получая сообщения, относящиеся к моей категории, по мере необходимости. когда они мне понадобятся.
Это немного долгий путь, но пока сойдет.