Использование 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);

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

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

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

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

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

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