it-swarm.asia

استرداد قائمة عناصر القائمة في صفيف

أنا أعمل حاليًا على موضوع مخصص. في هذا المظهر ، لدي قائمة قمت بتسجيلها باستخدام register-nav-menu ، ثم أعرض القائمة على صفحة الويب الخاصة بي باستخدام دالة wp_nav_menu.

ومع ذلك ، أود استرداد قائمة عناصر القائمة فقط (أسماء عناصر القائمة الفعلية فقط التي تم استخدامها في منطقة wp-admin لإنشاء القائمة ، ودون أي HTML) ، وأود حفظ هذه القائمة من العناصر في صفيف (أي عدم عرضها).

لذلك ، فإن كود psuedo ستبدو هكذا

$menu_items = get_list_of_items($name_of_menu); // $name_of_menu is the result of register-nav-menu, and get_list_of_items is the psuedo function
foreach ($menu_items as $item) {
    // do something with the item
}

هل هناك طريقة للقيام بذلك؟ شكر.

11
Greeso

wp_get_nav_menu_items قد يبدو أنه ما تحتاجه بالضبط. تقوم بإرجاع مجموعة من كائنات القائمة.

7
vancoder

كما يذكر @ vancoder ، wp_get_nav_menu_items() هي الطريق للذهاب ، ولكن أعتقد أن إجابة مفصلة أفضل ستكون أكثر فائدة للناس في المستقبل.

تقوم الوظيفة المذكورة بإرجاع مجموعة من الكائنات WP_Post Object (بحيث يمكنك الوصول إلى القيم باستخدام سهم ، على سبيل المثال. $item->title).

للحصول على basic setup ، يمكنك استخدام ما يلي:

$menuLocations = get_nav_menu_locations(); // Get our nav locations (set in our theme, usually functions.php)
                                           // This returns an array of menu locations ([LOCATION_NAME] = MENU_ID);

$menuID = $menuLocations['primary']; // Get the *primary* menu ID

$primaryNav = wp_get_nav_menu_items($menuID); // Get the array of wp objects, the nav items for our queried location.

بعد ذلك ، يمكنك حلقة فوق هذا المتغير $primaryNav ، على سبيل المثال:

foreach ( $primaryNav as $navItem ) {

    echo '<li><a href="'.$navItem->url.'" title="'.$navItem->title.'">'.$navItem->title.'</a></li>';

}
36
Brad Adams