I'm creating some nodes programmatically, thus:
foreach ($titles as $t) {
$n = new stdClass();
$n->type = 'myType';
$n->uid = 1;
$n->title = $t;
$menu = array();
$menu['link_title'] = $t;
$menu['menu_name'] = 'primary-links';
// this attempt at placing the menu item in a particular place in the
// menu hierarchy didn't work:
$menu['parent'] = 'primary-links:867';
$menu['depth'] = 3;
$menu['p1'] = '580';
$menu['p2'] = '867';
$n->menu = $menu;
node_save($n);
}
I've got a menu structure like this:
primary-links
Parent 1
Child 1
Child 2
Parent 2
Child 3
I want the new menu items to appear as children of Child 3. I was able to create menu items at the same time as the nodes, and they appeared in the correct menu, but not in the correct place in the hierarchy. What am I missing?
In drupal 7 you need to set also enabled to 1 (see: menu_node_save()):
$node->menu = array(
'link_title' => $node->title,
'menu_name' => 'main-menu',
'plid' => 0,
'enabled' => 1,
);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With