Как переопределить searchform.php с помощью плагина

Я пытаюсь создать форму поиска, которая немного отличается от окна поиска WP по умолчанию. Я могу отредактировать searchform.php для этого, но я хочу, чтобы он был в форме плагина, чтобы я мог легко включить его и отключить по желанию. Но проблема в том, что если WP найдет searchform.php, он будет использовать форму в этом файле, поэтому никакие хитрости, такие как add_filter, add_action не сработают. Итак, что я хочу спросить у людей здесь: есть ли какой-нибудь способ, которым я могу достичь вышеупомянутого. т.е. переопределить код searchform.php

Также, с другой стороны, если я назову поле поиска для чего-либо, кроме "s", то код переходит к index.php, а не search.php. Это я проверил, добавив отладочные эхо и другие странные утверждения. Что может быть причиной этого?

Заранее спасибо за помощь.

1 ответ

Хорошо, я нашел взломать. Не очень хорошо, но работает для меня. Итак, что я сделал, в фильтре активации моего плагина я написал код для переименования исходного searchform.php (тот, который находится в папке текущей темы) в searchform_orig.php. Таким образом, WP не находит searchform.php и так отображает форму поиска, которую я подключил к фильтру. Аналогично, в части деактивации я переименовываю файл обратно в searchform.php. Может быть не идеальным, но работает на у систем, которые я тестировал. Хотя мне было бы интересно знать лазейки / предостережения в этом подходе. Отмечая это как ответ;-)

Другие вопросы по тегам