問題描述

我在這個網站上搜尋,發現很多 answers 的這個問題。他們中的大多數人不是在我的主題工作。

這是一個解決方案我 found,它的工作,根據我的需要。

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);

}

此程式碼將在 wp_nav_menu()的開始和結束時刪除 ul 。所以在我的主題我只是寫

<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>

最佳解決方案

函式 wp_nav_menu 接受 fallback_cb 的引數,該引數是要在選單不存在的情況下執行的函式的名稱。所以改變你的程式碼到這樣的東西:

function wp_nav_menu_no_ul()
{
    $options = array(
        'echo' => false,
        'container' => false,
        'theme_location' => 'primary',
        'fallback_cb'=> 'fall_back_menu'
    );

    $menu = wp_nav_menu($options);
    echo preg_replace(array(
        '#^<ul[^>]*>#',
        '#</ul>$#'
    ), '', $menu);

}

function fall_back_menu(){
    return;
}

你甚至可以從選單中刪除容器,並做更多的引數傳送到 wp_nav_menu function

希望這可以幫助。

次佳解決方案

實際上,WordPress 預設支援這一點:

wp_nav_menu(array(
    'items_wrap' => '%3$s'
));

items_wrap 的預設值為<ul id="%1$s" class="%2$s">%3$s</ul>

第三種解決方案

下面的程式碼應該很簡單。

<?php 

  $my_menu = array( 
  'menu' => 'main-menu',
  'container' => '',
  'items_wrap' => '%3$s' 
  );

  wp_nav_menu( $my_menu );

?>

參考 wp_nav_menu 功能的連結 http://codex.wordpress.org/Function_Reference/wp_nav_menu

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。