Tôi tìm kiếm trên trang web này và tìm thấy nhiều câu trả lời cho câu hỏi này. Hầu hết trong số họ không làm việc theo chủ đề của tôi.
Đây là một giải pháp tôi tìm thấy và nó hoạt động theo nhu cầu của tôi.
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);
}
Mã này sẽ loại bỏ ul
ở đầu và cuối wp_nav_menu()
. Vì vậy, trong chủ đề của tôi, tôi chỉ viết
<ul class="primary-nav">
<?php wp_nav_menu_no_ul(); ?>
</ul>
Nhưng vấn đề lại xuất hiện khi tôi không thêm hoặc kích hoạt bất kỳ menu nào thông qua quản trị viên. http://domain.com/wp-admin/nav-menus.php
Câu hỏi:
Làm cách nào để xóa <div><ul>**</ul></div>
menu có hoạt động hay không. Cho tôi biết
Cuối cùng tôi đã làm cho nó hoạt động :) 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
và menu_id
chỉ hoạt động nếu menu được kích hoạt. Nếu menu không tồn tại menu_class
và menu_id
không phải là <ul>
nhưng như <div>
. đó là lý do tại sao quá nhiều câu hỏi về wp_nav_menu()
bạn có thể kiểm tra nó :)
menu_class
vàmenu_id
để đặt thuộc tính lớp và / hoặc id trên UL.