Pot adăuga pagini în meniul personalizat prin script?

26 mar. 2011, 23:12:59
Vizualizări: 330
Voturi: 1

Tema mea are o atribuire de meniu personalizat...

function my_register_my_menus() {
  register_nav_menus(
    array('header-menu' => __( 'Meniul Antet Personalizat' ) )
  );
}

...și creez un plugin de tip "instalator" care, la activare, aș dori să se conecteze la acest meniu personalizat și să atribuie anumite pagini acestuia, ca și cum ar fi fost create manual.

Totuși, API-ul pentru meniu este destul de nou și până acum nu am găsit niciun exemplu despre cum să fac acest lucru.

Sper că cineva de aici îmi poate oferi niște indicații, exemple sau informații despre cum să procedez.

Mulțumesc anticipat :-)

0
Toate răspunsurile la întrebare 1
4

Poți utiliza hook-ul wp_nav_menu_{$menu->slug}_items și să adaugi link-ul tău cu o funcție callback, de exemplu dacă slug-ul meniului tău este header-menu atunci ceva de genul:

add_filter('wp_nav_menu_header-menu_items', 'add_my_extra_links',10,2);
function add_my_extra_links($items, $args) {
  $newitems = '<li><a title="Link Test" href="http://google.com">Google</a></li>';
  $newitems .= '<li><a title="Link Test" href="http://yahoo.com">Yahoo</a></li>';
  $newitems .= '<li><a title="Link Test" href="http://bing.com">Bing</a></li>';
  $newitems .= $items;
  return $newitems;
}

Actualizare

Presupun că ar trebui să apelezi wp_save_nav_menu_items care este funcția folosită pentru salvarea elementelor de meniu în baza de date.

27 mar. 2011 00:09:17
Comentarii

Nu pot să-ți spun cât de recunoscător sunt să văd orice semn de viață la această întrebare. Totuși, un lucru, deoarece acesta este un filtru, nu sunt sigur că este ceea ce caut. Am nevoie să pot crea un meniu prin script o singură dată, în timpul activării plugin-ului, astfel încât să fie exact ca și cum l-aș fi creat manual pe site, și să persiste fără un filtru în timpul execuției. Are sens acest lucru?

Scott B Scott B
27 mar. 2011 00:44:19

Am actualizat întrebarea mea pentru a clarifica puțin. Îmi dau seama că nu a fost clar în privința aspectului că toate acestea se fac la activarea plugin-ului (o dată și gata).

Scott B Scott B
27 mar. 2011 00:52:40

@Scott: am actualizat răspunsul meu pe scurt pentru că este foarte târziu aici și sunt pe jumătate adormit, dar ar trebui să te ducă undeva.

Bainternet Bainternet
27 mar. 2011 01:15:21

+1 pentru ajutorul oferit până acum. Mi-ai dat cu 100% mai mult decât aveam înainte să răspunzi :-)

Scott B Scott B
27 mar. 2011 02:25:29