I am programatically saving nodes. From my reading, it sounds as if Path auto is trigged to autmatically create a URL alias when node_save() is called. However, this is not happening.

I later read that I needed to set $node->path_set_alias = TRUE. However, this is not working correctly either.

Using 7.12 and the latest versions of pathauto.

Here is my code.

$node = new stdClass();
        //set other defaults

        $node->type = $page_data['content_type'];
        $node->body[LANGUAGE_NONE][0]['value'] = $page_data['description'];
        $node->body[LANGUAGE_NONE][0]['summary'] = text_summary($page_data['description']);
        $node->body[LANGUAGE_NONE][0]['format']  = 'filtered_html';
        $node->title = $page_data['title'];
        $node->field_product_price[LANGUAGE_NONE][0]['value'] = $page_data['price'];
        $node->field_item_location[LANGUAGE_NONE][0]['postal_code'] = $page_data['zipcode'];
        $node->uid = "1";
        $node->status = 1;
        $node->active = 1;
        $node->pathauto_perform_alias = TRUE;

    //the name of my actual field is 'product images'
    $node->field_product_images[LANGUAGE_NONE] = $images;

    $node->field_baby_clothes_category[LANGUAGE_NONE][0]['tid'] = $page_data['category']; 

    if($node = node_submit($node)) { // Prepare node for saving

Thoughts on how to get this to work correctly? Thanks!

  • UPDATE - my problem still exists, however, something weird is happening. The paths are being generated and listing correctly in the url alias list. The problem now is Drupal refuses to use them. What I mean is, even though the aliases exist, drupal uses node/xx instead. How do I get Drupal to use the alias?
    – blue928
    Mar 1, 2012 at 10:22
  • You mean when visiting yoursite.com/my-article-title it redirects to yoursite.com/node/123, is it what you are saying? Jun 27, 2013 at 9:48

1 Answer 1


We discussed on Drupal.org that not setting the $node->language property causes this issue to happen. Either setting $node->language = LANGUAGE_NONE or $node->language = 'en' should fix this.

Also using $node->path['pathauto'] = TRUE rather than $node->pathauto_perform_alias for Drupal 7.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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