I found this code to create a node programmatically. It creates the node but the "title" field is not populated.

    $body_text = 'Lorem Ipsum is simply dummy text of the printing and typesetting industry.';

  $node = new stdClass();
  $node->type = 'flats';

  $node->title    = 'Node Created on ' . date('c');
  $node->language = 'en';

  $node->body[$node->language][0]['value']   = $body_text;
  $node->body[$node->language][0]['summary'] = text_summary($body_text);
  $node->body[$node->language][0]['format']  = 'filtered_html';

  $path = 'content/my-lipsum-' . date('YmdHis');
  $node->path = array('alias' => $path);


The machine name of my Title is "title_field", but using this neither works:

  $node->title_field    = 'Node Created on ' . date('c');

Are you using https://www.drupal.org/project/title ? If that's the case you must treat it like a field:

$node->title_field[$node->language][0]['value'] = 'Node Created on ' . date('c');
|improve this answer|||||
  • Yes I am, but still not working. The node is created and I can see the the title in '/admin/content' but once I edit the node the Title field is empy, same happens with the 'body' field, both are empty. – chefnelone Jan 26 '15 at 12:13
  • If I use this line it works: $node->title_field['und'][0]['value'] = 'Node Created Programmatically on '; – chefnelone Jan 26 '15 at 13:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.