मैंने इस साइट पर खोज की और इस प्रश्न के कई उत्तर पाए । उनमें से ज्यादातर मेरे विषय पर काम नहीं कर रहे हैं।
यहाँ एक समाधान है जो मैंने पाया और यह मेरी आवश्यकता के अनुसार काम कर रहा है।
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>
। यही कारण है कि wp_nav_menu()
आपके बारे में बहुत अधिक सवाल इसका परीक्षण कर सकते हैं :)
menu_class
औरmenu_id
मापदंडों का उपयोग कर सकते हैं ।