زمانی که قالب html را به وردپرس تبدیل می نماییم، باید فهرست را به پوسته خود اضافه نماییم.
برای این کار کدهای زیر را در functions قرار می دهیم.
//Navigation Menus register_nav_menus(array( 'primary'=> __('Primary Menu') )); function fire_essential_functions(){ add_theme_support('title-tag'); load_theme_textdomain('fire',get_template_directory.'/languages'); register_nav_menu('primary-menu',__('primary menu','fire')); } add_action('after_setup_theme','fire_essential_functions');
داینامیک کردن منو با کلاس واکر
در هسته خود وردپرس به فایل wp-includes رفته و فایل nav-menu-template را کپی کرده و به تم خود اضافه می نماییم و فایل مربوطه رابه نام fire-walker تغییر می دهیم.
کدهای fire-walker به شکل زیر تغییر می دهیم.
class Walker_Nav_Menu extends Walker
ادیت کد بالا
class fire_walker extends Walker
بعد از ادیت کد یک قسمت از کدهای فایل fire_walker را حذف می نماییم.
حذف کدها از Walker_Nav_Menu// تا پایان کدها صورت می گیرد.
کدهای زیر هم در فانکشن اضافه می نماییم.
require_once ('fire-walker.php'); function default_main_menu(){ echo '<ul class="nav navbar-nav">'; echo '<li class="dropdown mega-dropdown"> </li>'; echo '</ul>';
در قسمت ul کلاس مربوط به ul تم خود را وارد می نماییم.
در قسمت li هم کلاس مربوط به زیر منو را وارد می نماییم.
کدهای زیر را در قسمتی که می خواهیم منو نمایش داده شود قرار می دهیم.
<?php wp_nav_menu(array( 'theme_location' => 'primary', 'menu_id' => 'primary-menu', 'fallback_cb'=>'default_main_menu', 'menu_class'=> 'nav navbar-nav', 'walker'=> new fire_walker() )); ?>
در قسمت ‘menu_class’ کلاس خودمان را می نویسیم.
در قسمت ‘theme_location’ هنگام افزودن فهرست هر نامی قرار دادیم به همان نام قرار می دهیم.
داینامیک کردن منو بوت استرپی
در ابتدا فایل wp_bootstrap_navwalker.php را از لینک زیر دانلود و در فولدر قالبتان (کنار فایل style.css) قرار بدید:
منبع فایل : https://github.com/twittem/wp-bootstrap-navwalker/tree/For-Bootstrap-2.3.2
سپس فایل functions.php قالبتان را باز کرده و کد زیر را به انتهای آن اضافه کنید:
require_once('wp_bootstrap_navwalker.php');
با استفاده از دستور زیر در فایل header.php امکان استفاده از منو را اضافه کنید :
<?php wp_nav_menu( array( 'menu' => 'primary', 'theme_location' => 'primary', 'depth' => 2, 'container' => 'div', 'container_class' => 'collapse navbar-collapse navbar-ex1-collapse', 'menu_class' => 'nav navbar-nav', 'fallback_cb' => 'wp_bootstrap_navwalker::fallback', 'walker' => new wp_bootstrap_navwalker()) ); ?>
احسنت.
ممنون از لطف شما جناب شاملو