Intereting Posts
проблема с guid, когда я меняю имя папки Отобразить старую ревизию сообщения в теме WP front-end, существуют ли функции для этого? wp_redirect не работает на странице меню администратора Как добавить индекс и надстрочный индекс в названиях страниц WordPress Многократный виджет WordPress в одном плагине Нажатие кнопки PUBLISH теперь перенаправляется на страницу 404 НЕ НАЙДЕНО Справка по настройке панели администрирования, удаление ссылок в стиле «приятель» из раскрывающегося списка Защита паролем пользовательской rss-ленты Отображать только HTML, если пользовательское поле имеет значение Как применить класс ко второму слову в элементе меню? Случайно испорченные URL-адреса Разрешить загружать только текущее сообщение Включить профиль автора в результаты поиска Как управлять разрешением шаблона, если оба фильтра Author и Category на месте? поиск запроса для публикации, а также идентификатор сообщения

do_action появляется вне меню?

Я использую функцию Билла Эриксона «Добавить дополнительный код в любое меню»:

<?php /** * Add Extra Code to Any Menu * @author Bill Erickson * @link http://www.billerickson.net/customizing-wordpress-menus/ * * @param string $menu * @param object $args * @return string modified menu */ function be_menu_extras($menu, $args) { //$extras = '<li class="right">Your extras go here</li>'; if ('secondary' == $args->theme_location) //return $menu . $extras; return $menu . '<li>' . do_action('posts_logout_link') . '</li>'; else return $menu; } add_filter('wp_nav_menu_items','be_menu_extras', 10, 2); 

для вставки do_action('posts_logout_link'); из плагина Logout Password Protected Posts.

Может ли кто-нибудь пролить свет на то, почему do_action появляется за пределами $menu .

Если я использую html, он появляется в конце в меню, заключенном в теги <li> , как и предполагалось. (Использование $ extras, похоже, дублирует ссылку в других областях.)

Solutions Collecting From Web of "do_action появляется вне меню?"

Я думаю, причина в том, что echo и return :

Функция posts_logout_link из

http://plugins.svn.wordpress.org/logout-password-protected-posts/trunk/logout.php

использует эхо.

Таким образом, ваш код возвращает и отражает эхо.

ps: Вы можете рассмотреть возможность использования выходной буферизации, чтобы исправить это

 ob_start(); do_action('posts_logout_link'); $logout_link=ob_get_clean(); return $menu . '<li>' . $logout_link . '</li>'; 

или изменить функции кода плагина в соответствии с вашими потребностями и поместить их в файл functions.php.