"Wp_nav_menu_items" হুক ব্যবহার করে শুধুমাত্র একটি নির্দিষ্ট মেনু কাস্টমাইজ করুন?


36

এখানে কিছু সহায়তার জন্য ধন্যবাদ, আমি আমার মূল মেনুতে একটি কাস্টম অনুসন্ধান বাক্স যুক্ত করতে পেরেছি ... এটি আমার থিমের ফাংশন.এফপিতে যুক্ত করে

add_filter('wp_nav_menu_items','search_box_function');
  function search_box_function ($nav){
  return $nav."<li class='menu-header-search'><form action='http://example.com/' id='searchform' method='get'><input type='text' name='s' id='s' placeholder='Search'></form></li>";
}

তবে, আমি এখন পাদলেখের জন্য অন্য মেনু যুক্ত করেছি, তবে অনুসন্ধান বাক্সটি এটিতে যুক্ত হয় added আমি কীভাবে কেবলমাত্র প্রাথমিক মেনুতে অনুসন্ধান বাক্স যুক্ত করব?

মেনুগুলি নিবন্ধ করার জন্য আমার কোডটি হ'ল:

register_nav_menus( array(
  'primary' => __( 'Primary Navigation', 'twentyten' ),
  'secondary'=>__('Secondary Menu', 'twentyten' ),

 ) );

.. এবং গৌণ মেনুটি প্রদর্শনের কোডটি হ'ল:

wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'secondary' ) ); 

উত্তর:


41

শুধুমাত্র প্রধান মেনুতে কাস্টম অনুসন্ধান বাক্স যুক্ত করতে আপনি wp_nav_menu_items ফিল্টার দ্বারা সরবরাহিত দ্বিতীয় প্যারামিটারটি পাস করতে পারেন এবং থিম_লোকেশনটি প্রাথমিক অবস্থান কিনা তা পরীক্ষা করতে পারেন

add_filter('wp_nav_menu_items','search_box_function', 10, 2);
function search_box_function( $nav, $args ) {
    if( $args->theme_location == 'primary' )
        return $nav."<li class='menu-header-search'><form action='http://example.com/' id='searchform' method='get'><input type='text' name='s' id='s' placeholder='Search'></form></li>";

    return $nav;
}

3
ধন্যবাদ, এটি দুর্দান্ত ... কেবল একটি নবাগত প্রশ্ন - কোডটিতে কী করে 10, 2?
ক্যানিবয়

4
10অগ্রাধিকার (দশটি ডিফল্ট হয়), 2ফিল্টার গ্রহণের জন্য আমরা যে ফাংশনটি হুক করছি তার সংখ্যা is
রাস্ট

@ এফ্ট, হ্যাঁ, আমি চেষ্টা করেছিলাম। এটা কাজ করেছে. প্রায়। আমি লগইন করি যখন, আমার দ্বিতীয় মেনু লিঙ্কগুলি dissapear, আমি কীভাবে এটি সমাধান করতে পারি?

1
নোট করুন যে ডাব্লুপিপি 3.8 হিসাবে, পরিবর্তনশীলটি $ আরগস-> মেনুটির পরিবর্তে theme আরগস-> থিম_লোকেশন
আলাইন জ্যাকোমেট ফোর্ট ২

@ অ্যালাইনজ্যাকোম্যাটফোর্টটি আসলে, $ আরগস-> মেনুটি মেনুর সংখ্যাসূচক আইডি প্রদান করে, যখন gs আরগস-> থিম_লোকেশনটি স্ট্রিংটি ফেরত দেয়, সুতরাং এই উত্তরটি এখনও ঠিক সেইভাবেই সঠিক। আপনি যদি স্ট্রিংগুলির সাথে তুলনা করছেন তবে কিছুই পরিবর্তন হয়নি।
মার্কাস

8

এটি করার একটি বিকল্প পদ্ধতি wp_nav_menu_items ফিল্টারটিতে মেনু স্লাগ যুক্ত করছে।

উদাহরণস্বরূপ, ধরা যাক যে শিরোনাম নামে আপনার একটি মেনু রয়েছে এবং আপনি সর্বদা এই মেনুটি (এটি কোনও থিমের অবস্থানের সাথে সংযুক্ত হোক বা না থাকুক) অনুসন্ধান বাক্স প্রদর্শন করতে চান want আপনি headerফিল্টারটিতে মেনু স্লাগ যুক্ত করে এটি করতে পারেন ।

নতুন ফিল্টারটি নিম্নরূপ হবে:

add_filter ('wp_nav_menu_header_items', 'search_box_function');
( 'wp_nav_menu_header_items', 'search_box_function' );

headerনতুন ফিল্টারটির অংশটি লক্ষ্য করুন । এটি ওয়ার্ডপ্রেসকে জানায় কী ফাংশনটি যুক্ত করতে হবে।

আপনার বর্তমান সমস্যাটির কাছে যাওয়ার জন্য এটি একটি ভিন্ন উপায়।


এই পৃষ্ঠায় @ ওশি থেকে আইটেমটি দেখুন, যা আপনাকে সম্বোধন করা হয়েছে।
অর্ধেক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.