Intereting Posts
Создать весь WordPress в качестве репозитория github? Как установить тег заголовка страницы в настраиваемом шаблоне для нестандартного типа сообщения? Как добавить / блог / в качестве префикса в структуру постоянной ссылки для сообщений в блогах, тегов и т. Д.? Каков правильный способ записи этого условного оператора? Использование URL-адресов, хранящихся в таблице сообщений Работа с Visual Composer VC_Single_Image Как получить условия из пользовательских таксономий после WordPress 4.5.0 Динамический контент из другого БД с пользовательским URL вставить данные из формы :: Предупреждение Пустой запрос mysqli :: query () Пользовательские поля как параметры типа публикации Как добавить RSS-виджет с помощью WP-CLI? В папке плагина BuddyPress, где я могу заменить URL-адрес входа в систему с помощью моего настраиваемого URL-адреса страницы входа? Рисование линии между темой и плагином в крупных проектах на заказ API настроек: изменение позиции настраиваемого поля настройки Плагины WordPress добавляют родительское меню в главном правиле администратора

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.