আপনি যদি WP_Nav_Menu_Widget
শ্রেণীর প্রয়োগের দিকে লক্ষ্য করেন তবে নীচের কোডটি দেখতে পাবেন:
function widget($args, $instance) {
// Get menu
$nav_menu = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( $instance['nav_menu'] ) : false;
if ( !$nav_menu )
return;
$instance['title'] = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
echo $args['before_widget'];
if ( !empty($instance['title']) )
echo $args['before_title'] . $instance['title'] . $args['after_title'];
wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu ) );
echo $args['after_widget'];
}
এর অর্থ মেনু হুক করার কোনও সুযোগ নেই। সুতরাং আপনাকে wp_nav_menu
ফাংশন বাস্তবায়নের উপর নজর দেওয়া দরকার , যেখানে আপনি নীচের কোডের লাইনগুলি পেতে পারেন:
$defaults = array(
'menu' => '',
'container' => 'div',
'container_class' => '',
'container_id' => '',
'menu_class' => 'menu',
'menu_id' => '',
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth' => 0,
'walker' => '',
'theme_location' => ''
);
$args = wp_parse_args( $args, $defaults );
$args = apply_filters( 'wp_nav_menu_args', $args );
$args = (object) $args;
এখানে আপনি দেখতে পারেন যে wp_nav_menu
ফাংশনে পাস করা সমস্ত যুক্তি প্রতিস্থাপন করা যেতে পারে। সুতরাং আপনার যা প্রয়োজন তা হ'ল আপনার নিজস্ব হুক হ্যান্ডলার তৈরি করা যা আপনার ওয়াকারকে একটি নেভিগেশন মেনুতে যুক্ত করবে। এটি যেমন সহজ হতে পারে:
function myplugin_custom_walker( $args ) {
return array_merge( $args, array(
'walker' => new My_Custom_Walker(),
// another setting go here ...
) );
}
add_filter( 'wp_nav_menu_args', 'myplugin_custom_walker' );
'walker' => new Walker_Nav_Menu()
আমার নির্দিষ্ট মেনুতে যুক্তি দিয়ে চেষ্টা করেছি এটি আবার ওভাররাইড করার জন্য মাত্র একটি মেনুতে ওয়ার্ডপ্রেস ডিফল্ট ওয়াকার হয়ে উঠেছে, তবে দুঃখের বিষয় এটি কাজ করে না।