如何找到包含特定字段的所有节点类型?

例如,假设我有两个节点类型“ mybio”和“ myresume”,并且两个节点类型都包含一个字段“ myphoto”。是否有一个函数将我的字段名称作为输入(“ myphoto”)并返回包含该字段的节点类型的名称(“ mybio”和“ myresume”)?

最佳答案

我不认为有功能,但是查看CCK的数据库结构可以解决问题:

function content_field_get_node_types($field_name) {
  $query = db_query("SELECT DISTINCT type_name FROM {content_node_field_instance} WHERE field_name = '%s'", $field_name);

  $node_types = array();
  while ($row = db_fetch_array($query)) {
    $node_types[] = $row['type_name'];
  }

  return $node_types;
}

10-07 15:22