Программное создание полей

Сначала создаем поле

  1. <?php
  2. $field = array(
  3.   'field_name' => 'field_category',
  4.   'type' => 'taxonomy_term_reference'
  5.   'settings' => array(
  6.     'allowed_values' => array(
  7.       array(
  8.         'vocabulary' => $vocabulary->machine_name,
  9.         'parent' => 0
  10.       ),
  11.     ),
  12.   ),
  13. );
  14.  
  15. field_create_field($field);
  16. ?>

Потом создаем экземпляр поля и сразу прикрепляем его к нужному бандлу

  1. <?php
  2. $instance = array(
  3.     'field_name' => 'field_category',
  4.     'entity_type' => 'node',
  5.     'label' => 'Category',
  6.     'bundle' => 'test',
  7.     'required' => true,
  8.     'widget' => array(
  9.         'type' => 'options_select'
  10.     ),
  11.     'display' => array(
  12.         'default' => array('type' => 'hidden'),
  13.         'teaser' => array('type' => 'hidden')
  14.     )
  15. );
  16.  
  17. field_create_instance($instance);
  18. ?>