Bu sitede arama yapıyorum ve bu soru için birçok cevap buldum . Çoğu benim temam üzerinde çalışmıyor.
İşte bulduğum tek bir çözüm ve ihtiyacım doğrultusunda çalışıyor.
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);
}
Bu kod ul
başında ve sonunda kaldırılacak wp_nav_menu()
. Bu yüzden temamda sadece yazıyorum
<ul class="primary-nav">
<?php wp_nav_menu_no_ul(); ?>
</ul>
Ancak yönetici üzerinden herhangi bir menü eklemediğimde veya etkinleştirmediğimde sorun tekrar geliyor. http://domain.com/wp-admin/nav-menus.php
Soru:
<div><ul>**</ul></div>
Menünün etkin olup olmadığını nasıl kaldırabilirim ? Bilmeme izin ver
Sonunda çalıştım :) 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
ve menu_id
yalnızca menü etkinleştirildiyse çalışır. Menü mevcut değilse menu_class
ve menu_id
olduğu gibi <ul>
değil <div>
. bu yüzden wp_nav_menu()
senin hakkında çok fazla soru test edebilirsiniz :)
menu_class
vemenu_id
parametrelerini kullanabilirsiniz .