web-dev-qa-db-ja.com

プログラムでノードを作成するときに、pathautoがnode_saveでトリガーされない

プログラムでノードを保存しています。私の読書から、node_save()が呼び出されたときに、Path autoがトリガーされてURLエイリアスが自動的に作成されるように聞こえます。ただし、これは発生していません。

$ node-> path_set_alias = TRUEに設定する必要があると後で読みました。ただし、これも正しく機能していません。

7.12および最新バージョンのpathautoを使用します。

これが私のコードです。

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

        $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;
    unset($images);




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

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

これを正しく機能させる方法についての考えは?ありがとう!

2
blue928

Drupal.orgでは、$ node-> languageプロパティを設定しないと、この問題が発生することを説明しました。 $ node-> language = LANGUAGE_NONEまたは$ node-> language = 'en'を設定すると、これを修正できます。

また、Drupalに対して$ node-> pathauto_perform_aliasではなく、$ node-> path ['pathauto'] = TRUEを使用します。

4
Dave Reid