it-swarm.asia

wp_nav_menu () حاوية مخصصة و container_id

حتى اليوم ، بدأت العمل على أول موضوع لدي وورد وحتى الآن كان الكثير من المرح. ومع ذلك ، واجهت صعوبة في الحصول على wp_nav_menu () للقيام بما أريد.

إليك ما أريد:

<nav id="topnav" class="menu">
   <ul>
      <li class="current_page_item"><a href="#" title="Home">Home</a></li>
      <li class="page_item page-item-2"><a href="#" title="About">About</a></li>
   </ul>
</nav>

بالبحث في الوثائق ، أتوقع أن تقوم المكالمة التالية بما أريد:

<?php wp_nav_menu(array( 'container' => 'nav', 'container_id' => 'topnav' )); ?>

لكن بدلاً من ذلك أحصل على هذا:

<div class="menu">
   <ul>
      <li class="current_page_item"><a href="#" title="Home">Home</a></li>
      <li class="page_item page-item-2"><a href="#" title="About">About</a></li>
   </ul>
</div>

يبدو لي أنه يتم تجاهل المعلمات المخصصة الخاصة بي لأن الإخراج من wp_nav_menu() هو نفسه تمامًا. هل هناك شيء أحتاج إلى تشغيله في مكان ما لتمكين هذا أو هل هناك شيء آخر يحدث؟

تصحيح

الغريب ، إذا قمت بتغيير menu_class فإنه يغير فئة div (كنت أتوقع أن يكون div الحاوية) ولكن تغيير menu_id لا يفعل شيئًا.

تحرير 2

حتى الانتقال إلى nav-menu-template.php وتغيير الإعدادات الافتراضية للحاوية ، container_id ، container_class ، menu_id لا يفعل شيئًا. سيؤدي تغيير menu_class إلى yyy إلى تغيير فئة div من القائمة إلى yyy.

3
Tom Savage

واجهت مشكلة الحفظ: لأنه إذا لم تقم بإنشاء القائمة في المشرف وورد ، فاستخدم طريقة احتياطية وإنشاء القائمة من جميع الصفحات النشطة ... وإذا حدث ذلك ، فلن يتم استخدام الخيارات من wp_nav_menu .. .

لذلك: ما عليك سوى إنشاء القائمة في المشرف ويمكنك تغيير علامة التفاف إلى "التنقل"

6
user2802

بادئ ذي بدء ، لن تتمكن من الحصول على WordPress لإخراج أي نوع من عناصر <nav> باستخدام وظائف أصلية. <nav> هي علامة HTML5 ، وتم تصميم WordPress لإنشاء إخراج XHTML ... أي عنصر <nav>.


تحرير: على ما يبدو أن الوظيفة تسمح بـ nav ... لكن ضع في اعتبارك أن بقية نواة WordPress لا تزال مبنية على إخراج XHTML ، وليس HTML5 ... احرص على التأكد من صحة موقعك بشكل صحيح .


حاول إزالة هذا المرجع ... قد يتسبب في حدوث خطأ يتجاهل تعليمة 'container_id' => 'topnav'. إذا كانت الأمور تعمل بشكل صحيح دون الرجوع إلى nav ، فيجب أن يكون لديك هذا:

<div id="topnav" class="menu">
   <ul>
      <li class="current_page_item"><a href="#" title="Home">Home</a></li>
      <li class="page_item page-item-2"><a href="#" title="About">About</a></li>
   </ul>
</div>
1
EAMann
1
hakre

لست متأكدًا مما إذا كان أي شخص لا يزال يبحث عن حل لهذا الأمر - لكنني فقط حصلت هنا على محاولة العثور على الإجابة بنفسي - اعتقدت أنني سأشارك حل بلدي :)

أردت أيضًا استخدام <nav> بدلاً من العنصر <div> وحلها عن طريق إزالة <div> ، كما هو مذكور في هذه الصفحة ، codex codex:http://codex.wordpress.org/ Function_Reference/wp_nav_menu :

<?php
function my_wp_nav_menu_args( $args = '' )
{
    $args['container'] = false;
    return $args;
} // function

add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
?>

تمت الإضافة إلى ملف jobs.php الخاص بي ، وتم ترميز ملف السمة باستخدام علامة <nav> وعملت جميعًا على ما يرام بالنسبة لي ؛) نأمل أن يساعد هذا :)

0
user3160