Ich habe auf dieser Site gesucht und viele Antworten auf diese Frage gefunden. Die meisten von ihnen arbeiten nicht an meinem Thema.
Hier ist eine Lösung, die ich gefunden habe und die meinen Bedürfnissen entspricht.
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);
}
Dieser Code wird ul
am Anfang und am Ende von entfernt wp_nav_menu()
. Also schreibe ich einfach in mein Thema
<ul class="primary-nav">
<?php wp_nav_menu_no_ul(); ?>
</ul>
Aber das Problem tritt erneut auf, wenn ich kein Menü über den Administrator hinzufüge oder aktiviere. http://domain.com/wp-admin/nav-menus.php
Frage:
Wie entferne ich das <div><ul>**</ul></div>
ob das Menü aktiv ist oder nicht. Gib mir Bescheid
Endlich habe ich es geschafft :) 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
und menu_id
funktionieren nur, wenn das Menü aktiviert ist. Wenn das Menü nicht existiert menu_class
und menu_id
nicht als <ul>
aber als ist <div>
. das ist, warum zu viele Fragen über wp_nav_menu()
Sie es testen können :)
menu_class
und können Siemenu_id
eine Klasse und / oder ein ID-Attribut für den UL festlegen.