ฉันค้นหาในเว็บไซต์นี้และพบคำตอบมากมายสำหรับคำถามนี้ ส่วนใหญ่ไม่ได้ทำงานกับธีมของฉัน
นี่คือทางออกหนึ่งที่ฉันพบและใช้งานได้ตามความต้องการของฉัน
function wp_nav_menu_no_ul()
{
$options = array(
'echo' => false,
'container' => false,
'theme_location' => 'primary'
);
$menu = wp_nav_menu($options);
echo preg_replace(array(
'#^<ul[^>]*>#',
'#</ul>$#'
), '', $menu);
}
รหัสนี้จะเอาที่จุดเริ่มต้นและจุดสิ้นสุดของul
wp_nav_menu()
ดังนั้นในชุดรูปแบบของฉันฉันเพิ่งเขียน
<ul class="primary-nav">
<?php wp_nav_menu_no_ul(); ?>
</ul>
แต่ปัญหาจะมาอีกครั้งเมื่อฉันไม่เพิ่มหรือเปิดใช้งานเมนูใด ๆ ผ่านทางผู้ดูแลระบบ http://domain.com/wp-admin/nav-menus.php
คำถาม:
ฉันจะลบเมนูได้<div><ul>**</ul></div>
อย่างไรว่าใช้งานได้หรือไม่ แจ้งให้เราทราบ
ในที่สุดฉันก็ทำให้มันทำงาน :) functions.php
function wp_nav_menu_no_ul()
{
$options = array(
'echo' => false,
'container' => false,
'theme_location' => 'primary',
'fallback_cb'=> 'default_page_menu'
);
$menu = wp_nav_menu($options);
echo preg_replace(array(
'#^<ul[^>]*>#',
'#</ul>$#'
), '', $menu);
}
function default_page_menu() {
wp_list_pages('title_li=');
}
header.php
<ul class="primary-nav">
<?php wp_nav_menu_no_ul(); ?>
</ul>
menu_class
และmenu_id
จะใช้งานได้เมื่อเปิดใช้งานเมนูเท่านั้น หากเมนูไม่มีอยู่menu_class
และmenu_id
ไม่เป็น<ul>
เช่น<div>
นั้น thats ทำไมคำถามมากเกินไปเกี่ยวกับwp_nav_menu()
คุณอาจทดสอบ :)
menu_class
และmenu_id
เพื่อตั้งค่าคลาสและ / หรือแอตทริบิวต์ id บน UL