register_nav_menus( array $locations = array() )
ثبت منو پیمایش در تم های وردپرس
#پارامتر ها
- locations
این پارامتر یک آرایه دریافت می کند و به صورت optional است, یعنی مقدار پیش فرض دارا می باشد و می توان برای این پارامتر هیچ مقداری ست نکرد. در این آرایه که مقدار پیش فرض آن یک آرایه خالی می باشد می توانید slug (شناسه خاص برای تفکیک منو) و توضیحاتی درباره ی منوی درخواستی خود ارسال کنید.
ابتدا متد register_nav_menu را بررسی که و ببینید که چگونه می توان تنها یک محل منو ثبت کرد, و بعد می توانید از بخش فهرست ها منو ثبت شده خود را ببینید که به لیست منو های تم شما اضافه شده است.
این متد به صورت اتوماتیک قابلیت پشتیبانی از فهرست ها را به تم شما اضافه میکند و دیگر نیازی نیست شما از متد add_theme_support(‘menus’) برای افزودن این قابلیت به تم خود استفاده کنید.
برای نمایش محتواهای سفارشی شده منو های ثبت شده خود در بخش هایی که در نظر گرفته اید, باید از متد wp_nav_menu استفاده کنید.
در منوی منوها در بخش نمایش که در دسترس ادمین می باشد, برای منوها گزینه های پیشرفته ای مانند “افزودن لینک دلخواه” “CSS های سفارشی” “توصیف رابطه لینک (XFN)” به شما نمایش میدهد.
از متد get_registered_nav_menus برای گرفتن لیست تمامی منوهای ثبت شده در تم می توانید استفاده کنید.
منبع
لینک فایل : wp-includes/nav-menu.php
function register_nav_menus( $locations = array() ) { global $_wp_registered_nav_menus; add_theme_support( 'menus' ); foreach ( $locations as $key => $value ) { if ( is_int( $key ) ) { _doing_it_wrong( __FUNCTION__, __( 'Nav menu locations must be strings.' ), '5.3.0' ); break; } } $_wp_registered_nav_menus = array_merge( (array) $_wp_registered_nav_menus, $locations ); }
نمونه کد
ابتدا چک کنید متد شما وجود دارید یا خیر و بعد آن را اضافه کنید :
if ( ! function_exists( 'mytheme_register_nav_menu' ) ) { function mytheme_register_nav_menu(){ register_nav_menus( array( 'primary_menu' => __( 'Primary Menu', 'text_domain' ), 'footer_menu' => __( 'Footer Menu', 'text_domain' ), ) ); } add_action( 'after_setup_theme', 'mytheme_register_nav_menu', 0 ); }
برای استفاده ابتدا باید یک متد در اکشن (HOOK) after_setup_theme ثبت کنید که بعد از انجام این رویداد متد شما فراخوانی شود تا بتوانید از متد ثبت منو برای تم استفاده کنید.