我刚刚开始学习如何使用Drupal 7.我创建了一个新的内容类型,它将在我的首页显示为一个feed。我需要的所有数据都被正确提取和显示,除了图像,其网址总是缺少实际文件。我的首页中有另一个使用默认文章内容类型的Feed,所有图像都可以正常显示。
我用于两者的代码基本相同,唯一的区别是要检索的内容类型。
这套工作:
$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title'))
->condition('n.type', 'article')
->leftJoin('field_data_body', 'u', 'u.entity_id = n.nid');
$query->addField('u', 'body_summary');
$query->orderBy("nid", "desc");
$query->range(0, 3);
$result = $query->execute();
while($row = $result->fetchAssoc()) {
$nid = $row['nid'];
$node = node_load($nid);
echo theme('image_style', array('style_name' => 'home-article-summary', 'path' => ($node->field_image['und'][0]['uri'])));
}
这不是:
$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title'))
->condition('n.type', 'news') //the only difference between the two is this line
->leftJoin('field_data_body', 'u', 'u.entity_id = n.nid');
$query->addField('u', 'body_summary');
$query->orderBy("nid", "desc");
$query->range(0, 3);
$result = $query->execute();
while($row = $result->fetchAssoc()) {
$nid = $row['nid'];
$node = node_load($nid);
echo theme('image_style', array('style_name' => 'home-article-summary', 'path' => ($node->field_image['und'][0]['uri'])));
}
我尝试将我创建的内容类型的设置与结构 - >内容类型的文章相同,但没有任何反应。我错过了什么?谢谢。
编辑: 经过检查,我找不到我为自定义内容类型上传的图片的大小调整版本。我假设这意味着实际上没有调整大小,因此脚本没有返回文件。我仍然不明白为什么会这样。
编辑第二个: 没关系。我发现了这个问题。现在一切正常。只是使用了错误的变量。
答案 0 :(得分:0)
作为Drupal新手的一些友好建议,请考虑使用Views来显示内容列表,而不是编写大量自定义数据库查询。从长远来看,这将为您节省大量编码。
Views的另一个论点是它将被包含在Drupal 8核心中。