Drupal按作者ID获取节点

Drupal按作者ID获取节点,drupal,Drupal,Drupal API中是否有一个函数可以用于按作者ID获取节点 我正在尝试创建一个块,向当前用户显示他们编写的页面的列表,但我在使用它时遇到了惊人的困难。使用SQL很容易做到这一点: global $user; $items = array(); $result = db_query("SELECT nid, title FROM {node} WHERE uid = %d", $user->uid); while ($row = db_fetch_object($result)) {

Drupal API中是否有一个函数可以用于按作者ID获取节点


我正在尝试创建一个块,向当前用户显示他们编写的页面的列表,但我在使用它时遇到了惊人的困难。

使用SQL很容易做到这一点:

global $user;
$items = array();
$result = db_query("SELECT nid, title FROM {node} WHERE uid = %d", $user->uid);
while ($row = db_fetch_object($result)) {
  $items[] = l($row->title, 'node/' . $row->nid);
}
return theme('item_list', $items, NULL, 'ul');

自定义块中的上述代码应该可以做到这一点。请记住不要缓存它。

您可以使用该模块进行此操作。它通过web UI生成页面、块、提要等,您可以通过web UI构建数据库查询。非常灵活,在大多数Drupal站点上大量使用。

我一直在寻找一个API函数,因为我在这种情况下无法直接访问运行此Drupal安装的数据库。所以我看不到记录或列名或任何东西。谢谢你这么完整的回答!如果需要查看的话,您可以使用备份和迁移模块将数据库的副本复制到本地环境中。如果您在自定义模块中编写代码,块中的SQL查询似乎不是很“Druply”。这就是如何做到的。这就是视图创建块时所做的。我在Drupal 8中如何做到这一点?同意,这似乎是视图的完美用例。