it-swarm-korea.com

새 노드를 만들 때 메뉴 링크를 활성화하는 방법은 무엇입니까?

프로그래밍 방식으로 메뉴 링크를 활성화하려고합니다. 방법은 다음과 같습니다.

function create_menu_link() {
    $node = new stdClass();
    $node->type = 'mytype';
    node_object_prepare($node);

    $node->menu['link-title'] = $menu_title;

    node_save($node);
}

그러나 제목 만 설정하면 작동하지 않습니다. $node->menu에는 0로 설정된 mlidplid와 같은 다른 변수가 있습니다. menu_namemain-menu:0로, modulemenu로 설정됩니다.

1
Ek Kosmos

menu_link_save를 사용하여 메뉴 항목을 별도로 만들어야합니다.

$item = array(
  'menu_name' => 'main-menu',
  'link_title' => $node->title,
  'link_path' => 'node/'. $node->nid,
);
menu_link_save($item);
4
Derek Ahmedzai

링크를 수동으로 만들 필요가 없습니다. menu_node_save () 후크는 다음 변수를 제공하는 경우 노드를 저장할 때 자동으로 링크 생성을 처리합니다.

  $node->menu['enabled'] = TRUE;
  $node->menu['link_title'] = t('My title');
  $node->menu['description'] = ''; // Needed even if empty to avoid notices.
1
peterpoe