Intereting Posts
как сделать персонализированный пост с функцией «публиковать» по умолчанию не сохранять в черновике? bloginfo () и get_template_directory_uri () с SSL? Можете ли вы выбрать сообщение в качестве главной страницы или только для страниц? Как отслеживать происхождение текста alt на конкретном изображении? Установка атрибута как изменения в торговле woo через php SELECT-запрос с подготовкой и заполнителем для строки разбиение на страницы для списков категорий (пользовательский тип сообщения) Очистка фиктивных данных перед запуском Список всех уникальных значений полей? как получить 10 лучших популярных блогов Отображение меню за пределами сайта с помощью меню WP API Изменить / переписать структуру шаблона одиночного шаблона Как отображать фотографию автора В WordPress без какого-либо плагина? Каков наиболее эффективный метод базы данных для добавления и запроса usermeta? Как использовать действия create_term, edit_term, delete_term?

Использование ob_get_content для get_search_form помещается в бесконечный цикл

Я пытаюсь изменить внешний вид моей формы поиска. Он должен иметь два текстовых поля. Я хочу, чтобы это было в виде плагина, который любой может активировать. searchform.php я не имею никакого контроля над searchform.php . И я также читал, что если searchform.php присутствует, то параметр эха игнорируется ( http://codex.wordpress.org/Function_Reference/get_search_form#Notes )

Это заставило меня взглянуть на фрагмент кода под заголовком «MOAR OBJECT BUFFERZ !!!» в:

http://shinraholdings.com/363/3-wordpress-hacks-to-unlock-some-much-needed-features/4/

Я скопировал код как есть и добавил фильтр: add_filter('get_search_form','shinra_searchform');

Тем не менее, код, кажется, идет в бесконечном цикле. Я помещаю эхо-инструкцию после строк 11 и 12. Один после 12 никогда не печатается, а один после строки 11 продолжает печатать непрерывно.

Я попробовал сменить фильтр, чтобы передать аргумент:

  1. add_filter('get_search_form',shinra_searchform(true),1);

  2. add_filter('get_search_form',shinra_searchform(false),1);

  3. add_filter('get_search_form',shinra_searchform($echo),1);

Но ни одна из этих работ не работает.

Может кто-нибудь, пожалуйста, помогите мне?

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

Альтернативное решение: добавьте виджет в свой плагин, который предлагает другую форму поиска. Попросите своих пользователей использовать это вместо встроенной виджеты или формы поиска тем.

Некоторые темы используют жестко закодированный вызов get_search_form() – вы ничего не можете сделать.