загрузите последние узлы с помощью node load()
Как я могу загрузить последние узлы с помощью node_load()
?
Я использовал следующий код, но я не могу редактировать ссылки, потому что он создает список, в котором они находятся внутри него. Я хочу загрузить идентификаторы узлов, а затем использовать node_load()
для загрузки каждого узла.
$output = db_query_range(db_rewrite_sql("SELECT n.nid, n.title, n.created FROM {node} n WHERE n.type = '%s' AND n.status = 1 ORDER BY n.created DESC"), story, 0, 10));
print $output;
Как это возможно?
1 answers
Используя только node_load()
, вы не можете получить список самых последних узлов, так как node_load()
возвращает один объект узла для узла, который соответствует некоторым критериям; это не функция, которая возвращает список узлов.
Более быстрый, но немного неэффективный способ получить список более свежих узлов - это:
- Получить список идентификаторов узлов, связанных с самыми последними узлами
- Вызов
node_load()
для каждого идентификатора узла, полученного на первом шаге
Вы могли бы использовать код аналогично следующему.
$nodes = array();
$result = db_query_range("SELECT n.nid FROM {node} n ORDER BY n.created DESC", array(), 0, $number_of_posts);
while ($nid = db_result($result)) {
$nodes[] = node_load($nid);
}
После выполнения этого кода $nodes
будет содержать $number_of_posts
последние узлы.