Как программно создать ноду, термин или комментарий

1. Создаём программно ноду

$node = new stdClass(); // инициализируем объект
$node->type = 'page'; // тип ноды
$node->title = 'Node title'; // заголовок
$node->language = LANGUAGE_NONE; // язык ноды
$node->uid = 1; // uid создателя (если не задать - будет создано от имени анонима)
$node->path = array('alias' => 'your node path'); // path alias
node_object_prepare($node); // добавляет в объект различные установки по умолчанию (статус каментов, публикация и прочее)

Добавим в ноду поля

Стандартное body (или любое textarea field) поле:
$node->body[$node->language][0]['value'] = 'Full body text';
$node->body[$node->language][0]['summary'] = 'Body summary here';
$node->body[$node->language][0]['format'] = 'filtered_html'; // формат поля

Обычное поле:

$node->field_my_custom_field[$node->language][0]['value'] = 'Custom field value';
Поле с картинкой или файлом:
$file_path = drupal_realpath('my_file.jpg'); // Получаем путь
// Создаем объект файла
$file = (object) array(
  'uid' => 1,
  'uri' => $file_path,
  'filemime' => file_get_mimetype($file_path),
  'status' => 1,
);
$file = file_copy($file, 'public://'); // сохраняем файл в директорию с файлами, можно задать другую директорию, например 'public://images'
$node->field_image[LANGUAGE_NONE][0] = (array)$file; // связываем поле с созданным файлом

Добавляем к ноде ссылки на термы:

$node->field_term_tags[$node->language][]['tid'] = 12; // id вашего термина
$node->field_term_tags[$node->language][]['tid'] = 15;

Сохраняем ноду:

$node = node_submit($node); // Подготавливаем ноду к сохранению
node_save($node); // Сохраняем ноду (после этого в $node->nid лежит nid только что созданной ноды)

2. Создаём программно термин таксономии

$term = new stdClass();
$term->name = 'Term Name'; // имя терма
$term->vid = 5; // id словаря, к которому хотим привязать термин
// добавляем значения в кастомные поля (делается также как в ноде!)
$term->field_custom_name[LANGUAGE_NONE][0]['value'] = 'Value here';

taxonomy_term_save($term); // сохраняем термин

3. Создаём программно комментарий

$comment = new stdClass(); // инит объекта, как обычно
$comment->nid = $node->nid; // nid, к которому вы хотите привязать коммент
$comment->pid = 0; // родитель коммента
$comment->uid = 1; // uid автора

/* следующие два поля можно оставить пустыми,
если это авторизованный пользователь: они заполнятся автоматически.
полезно заполнять - если коммент от имени анонима
*/
$comment->mail = '<a href="mailto:email@example.com">email@example.com</a>';
$comment->name = 'User name'; //

$comment->thread = '01/'; // не обязательно! ветка комментариев
$comment->hostname = '127.0.01' // не обязательно! задаётся IP автора
$comment->created = time(); // не обязательно! время создания коммента
$comment->is_anonymous = 0; // неминг понятен :)

$comment->status = COMMENT_PUBLISHED; // публикуем коммент
$comment->language = LANGUAGE_NONE; // как для ноды
$comment->subject = 'Comment subject';  // сабж коммета

// Если у вас в камментах есть какие-то кастомные поля - добавляем их как для ноды:
$comment->comment_body[$comment->language][0]['value'] = 'Comment body text';
$comment->comment_body[$comment->language][0]['format'] = 'filtered_html';
$comment->field_custom_field_name[LANGUAGE_NONE][0]['value'] = 'Some value';

// Сохраняем:
comment_submit($comment);
comment_save($comment);