Как работает класс Уокера?

Может кто-нибудь объяснить мне, как работает класс Walker? Всегда ли методы внутри класса должны перегружать родительский метод?


Я искал и читал о классе walker. Я проводил тесты, играл с кодом и, наконец, понял его. Надеюсь, это может быть полезно и другим.

Для этого вам нужно будет реализовать класс walker.

Вот простой пример.

  $ defaults = array ('theme_location' => 'primary', 'container' => 'ul  ',' menu_class '=>' nav navbar-nav main-nav ',' walker '=> new Primary_Walker_Nav_Menu ()); wp_nav_menu ($ defaults);  

В приведенном выше В блоке кода функция wp_nav_menu () принимает в качестве аргумента $ defaults . В массиве $ defaults последний ключ — walker . Значение ключа пешехода является объектом класса Primary_Walker_Nav_Menu . В файле functions.php реализуйте следующий код.

  class Primary_Walker_Nav_Menu расширяет Walker_Nav_Menu {function start_el (& $ output, $ item, $  depth = 0, $ args = array (), $ id = 0) {if (array_search ('menu-item-has-children', $ item-> classes)) {$ output. = sprintf (" n 
  • % s n", (array_search ('current-menu-item', $ item- > классы))? 'class = "active"': '', $ item-> url, $ item-> title); }} функция start_lvl (& $ output, $ depth) {$ indent = str_repeat (" t", $ depth); $ output. = " n $ indent
      n"; }}
  • Метод start_el () используется для добавления открывающего тега HTML для одного элемента дерева (например,

  • , или ) в $ output .

    Метод start_lvl () запускается, когда ходунок достигает начала новой «ветви» в древовидной структуре. Как правило, этот метод используется для добавления открывающего тега элемента HTML контейнера (например,

    ,

    или

    ) в $ output .

    Результатом вышеприведенной реализации будет следующий блок кода html.

       

    Ссылка ниже объясняет, как мы можем использовать класс Walkerhttp://code.tutsplus. ru/tutorials/standing-the-walker-class - wp-25401

    Оцените статью
    Botgadget.ru
    Добавить комментарий