ساخت منو با استایل خاص در وردپرس

HamedPC

تازه وارد
سلام

با استفاده از

<?php wp_nav_menu( array( 'theme_location' => 'header-menu' ) ); ?>

و در تعریف در Functions میشه منو هایی که به این شکل هست و تعریف کرد :

<ul>

<li><a>خانه</a></li>

<li><a>دسته بندی ها</a>

<ul>

<li><a>قالب وردپرس</a>

<ul>

<li><a>قالب شخصی</a></li>

<li><a>قالب شرکتی</a></li>

</ul>

</li>

<li><a>آموزش وردپرس</a></li>

</ul>

</li>

<li><a>درباره ما</a></li>

<li><a>تماس با ما</a></li>

</ul>

با اینکار ul li یا uli li ul li رو خود وردپرس میسازه ...

حالا سوال من اینه که اگه بخواییم یه منو رو که توی ul یا li با توجه به خیلی گزینه ها style داره چجوری برای فانکشن تعریف کنم

به عنوان مثال اینجا li هایی که ساب منو داره کلاس خاص خودش رو داره li های آخر کلاس last رو دار

:

<ul>

<li><a href='index.html'>خانه</a></li>

<li class='has-sub'><a href='#'>منوی شماره یک</a>

<ul>

<li class='has-sub'><a href='#'>منو های من</a>

<ul>

<li><a href='#'>منو های دوم</a></li>

<li class='last'><a href='#'>امروز</a></li>

</ul>

</li>

<li><a href='#'>منوی های امتحانی</a>

</li>

</ul>

</li>

<li><a href='#'>درباره ما</a></li>

<li class='last'><a href='#'>تماس با ما</a></li>

</ul>

یا منو های JQuery که استایل های زیادی دارند .

چجور میشه برای وردپرس در Function جوری تعریف کرد که بدونه هر استایل مربوط به کجاست؟

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
کد زیر رو تو فانکشن قرار بدین :


کد:
function register_my_menus() {
register_nav_menus(
array(
'topmenu' => __( 'منو بالا' )
)
);
}

add_action( 'init', 'register_my_menus' );
این کد رو هم تو قالب هرجا میخواین منو نمایش داده بشه قرار بدین


کد:
<?php

$defaults = array(
    'theme_location'  => 'topmenu',
    'menu'            => '',
    'container'       => 'div',
    'container_class' => 'test',
    'container_id'    => '',
    'menu_class'      => 'test1',
    'menu_id'         => 'nav',
    'echo'            => true,
    'fallback_cb'     => 'wp_page_menu',
    'before'          => '<div id="test2">',
    'after'           => '</div>',
    'link_before'     => '<div id="test3">',
    'link_after'      => '</div>',
    'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
    'depth'           => 0,
    'walker'          => ''
);

wp_nav_menu( $defaults );

?>
اینم خروجیش :

You must be registered for see images attach


تا اینجا شما تو نستی به تصویر بالا برسی برای تغییر اسم کلاسها و آیدیهای پیشفرض li , a باید walker کنین که باید تابع نویسی بشه .

یعنی یک تابعی تو فانکش تعریف میکنی مثل بعد میای اسمشو تو کد بالا بین ' ' تو خط مربوط به 'walker' => '' اضافه میکنی .

تو گوگل سرچ کنین میاد .

 
آخرین ویرایش توسط مدیر:

HamedPC

تازه وارد
مرسی . تا یه جاهاییش رو فهمیدم اما کار با

walker خیلی پیچیدست . از اون سایت خارجی توضیح کاملی نداده بود نفهمیدم من

مثلا مشخص کردن <li class='has-sub'><a href='#'>منو های من</a> که زیر منو داره بعدش رو میگید؟

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
خود وردپرس به صورت خودکار به منوی هایی که زیر منو دارن کلاس اضافه میکنه

فک کنم کلاس menu-item-has-children رو اضافه میکنه .

بهرحال اسم کلاس رو با فایرباگ میتونین پیدا کنین و تو استایلتون جایگزین has-sub کنین . نیاز به کد نویسی واکر هم نیست

 

cniran

کاربر عضو
اینم ببینید تقریبا کامله



 
بالا