Intereting Posts
Настройка игровой площадки WordPress и развертывание на рабочем сервере? WP_Query, пользовательский сортировка и настраиваемый фильтр URL-адрес перенаправляется в дом, там нет страницы или типа сообщения, как я могу отключить его? Удалите ссылку с яблочным прикосновением, сгенерированную WordPress Как отобразить атрибут тега <a> "target" в файле_author_meta ('description'); Установите дату по умолчанию в datepicker для настраиваемого поля wp_insert_term не работает с таксономией пользовательского типа сообщения Возможно ли иметь сеть сайтов BuddyPress, a-la WordPress MU с однократной подпиской? Поиск слова заголовка через query_posts (не точное совпадение) WordPress Предотвращение 404 пропущенных пользовательских сообщений Как читать xml-файл в WordPress? Пользовательское правило перезаписи происходит после правила общей категории Запрос WP с пользовательской таксономией disbale default widgets при активации темы WP_Query в файле save_post не включает элемент, который вызвал действие?

Где эти аргументы определены?

Я хочу сделать 2-строчный навигатор и нашел этот код.

add_filter('walker_nav_menu_start_el', 'description_in_nav_el', 10, 4); function description_in_nav_el($item_output, $item, $depth, $args) { return preg_replace('/(<a.*?>[^<]*?)</', '$1' . "<span>{$item->post_content}</span><", $item_output); } 

http://pastebin.com/Fw3e0wqC

Откуда взялись эти аргументы $item_output и $item ? Я знаю, что $item_output является источником nav_menu html, а $ item является nav_menu, но я не знаю, в какой функции генерируется html.

Solutions Collecting From Web of "Где эти аргументы определены?"

Вы должны посмотреть на плагин WordPress Plugin Api .

Когда вы добавляете фильтр, функция, которая подключается к этому фильтру, получает аргумент от функции: apply_filters .

Эта функция передает хотя бы один аргумент, но может передавать больше и всегда аспект возвращаемого значения.

Поэтому, если вы можете написать

 add_filter( 'walker_nav_menu_start_el', 'description_in_nav_el', 10, 4 ); 

потому что где-то в коде есть строка, которая выглядит примерно так:

 $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); 

Таким образом, аргумент, который вы можете использовать, передается вашей функции через apply_filters и они генерируются в функции, содержащей эту строку.

когда вы хотите узнать больше о крючке, сначала играйте, где посмотреть, это Codex, однако не все крючки могут быть созданы там, в этом случае лучшее место, где выглядит код .

Я думаю, вы используете программное обеспечение для написания кода, и, скорее всего, это программное обеспечение имеет функцию поиска среди всех файлов в папке 1 , поэтому, как только вы знаете, что искать:

apply_filters ('walker_nav_menu_start_el'

попробуйте сами, вы найдете файл /wp-includes/nav-menu-template.php в строке 169, содержащий только строку, которую я разместил выше, внутри метода start_el класса Walker_Nav_Menu .

1 Если вы знакомы и используете любой Unix SO, конечно, вам будет легче grep с grep , но в этом случае вы уже знаете это …