Что не так с моим использованием add_filter

Я хотел переопределить поиск по умолчанию WordPress с помощью своего пользовательского поиска, однако, когда я вставляю следующий код в файл плагина, он не появляется, заменив поиск по умолчанию (без ошибок, ничего), и когда я помещаю код в functions.php, отлично работает и заменяет поиск по умолчанию.

Может ли кто-нибудь сказать мне, почему он не работает в файле плагина? Благодаря!

function DynamiteSearch($form) { $form = '<form method="get" id="searchform" action="' . get_option('home') . '/" > <div><label class="hidden" for="s">' . __('Search for:') . '</label> <input type="text" value="' . attribute_escape(apply_filters('the_search_query', get_search_query())) . '" name="s" id="s" /> <input type="submit" id="searchsubmit" value="'.attribute_escape(__('Search')).'" /> </div> </form>'; return $form; } add_filter('get_search_form', 'DynamiteSearch'); 

Я очистил ваш код и поместил всю информацию заголовка для его установки. Ваш плагин отлично работает, я его протестировал!

 /* Author: whoever Plugin Name: Some Name Plugin URI: Text Domain: some-domain Version: 1.0 */ function DynamiteSearch($form) { $form = "<form method = 'get' id = 'searchform' action = ' ".site_url()." ' >"; $form .= "<div><label class = 'hidden' for='s'>". __("Search for: ") . "</label>"; $form .= "<input type = 'text' value=' ". attribute_escape(apply_filters('the_search_query', get_search_query())) ." ' name='s' id='s' />"; $form .= "<input type = 'submit' id='searchsubmit' value=' ".attribute_escape(__('Look for it'))." ' />"; $form .= "</div>"; $form .= "</form>"; return $form; } add_filter('get_search_form', 'DynamiteSearch'); 

Попробуйте изменить текст кнопки отправки, чтобы узнать, работает ли он. Дайте мне знать, если это сработает для вас.

Спасибо, Рутвик

Если код, который вы опубликовали, буквально весь код, который вы помещаете в файл, вот почему.

Во-первых, вам нужны заголовки плагинов в верхней части файла, например ..

 /* Author: whoever Description: whatever Domain Path: /lang Plugin Name: Some Name Plugin URI: Text Domain: some-domain Version: 1.0 */ 

Во-вторых, вам нужно активировать плагин на странице администрирования плагинов (Admin> Plugins), но он появится только в этом списке после того, как у плагина есть правильный заголовок, например, тот, который был выше.

Если ни одна из этих двух проблем не является проблемой, напишите больше своего кода (должно быть больше, потому что вам не хватает заголовков плагинов из того, что было опубликовано).

Надеюсь, это поможет.. 🙂