¿Qué está mal en mi uso de add_filter?
Quería reemplazar la búsqueda por defecto de WordPress con mi búsqueda personalizada, pero cuando pongo el siguiente código en el archivo del plugin no reemplaza el buscador predeterminado (sin errores, nada) y cuando pongo el código en functions.php funciona correctamente y reemplaza el buscador predeterminado.
¿Alguien puede decirme por qué no funciona en el archivo del plugin? ¡Gracias!
function DynamiteSearch($form) {
$form = '<form method="get" id="searchform" action="' . get_option('home') . '/" >
<div><label class="hidden" for="s">' . __('Buscar:') . '</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(__('Buscar')).'" />
</div>
</form>';
return $form;
}
add_filter('get_search_form', 'DynamiteSearch');

Limpié tu código y agregué toda la información del encabezado para instalarlo. ¡Tu plugin funciona bien, lo probé!
/*
Autor: quien sea
Nombre del Plugin: Algún Nombre
URI del Plugin:
Dominio de Texto: algún-dominio
Versión: 1.0
*/
function DynamiteSearch($form)
{
$form = "<form method = 'get' id = 'searchform' action = ' ".site_url()." ' >";
$form .= "<div><label class = 'hidden' for='s'>". __("Buscar: ") . "</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(__('Buscar'))." ' />";
$form .= "</div>";
$form .= "</form>";
return $form;
}
add_filter('get_search_form', 'DynamiteSearch');
Intenta cambiar el texto del botón de enviar para ver si funciona. Avísame si te funcionó.
Gracias, Rutwick

¡Gracias Rutwick! Pero por alguna razón el cuadro de búsqueda en mi sitio aún no cambia. ¿Lograste cambiar el cuadro de búsqueda con este código? Gracias por hacérmelo saber.

Sí Arvind... Lo probé cambiando el texto del botón y se mostró correctamente. Estoy usando el tema 'TwentyTen'...

Si el código que has publicado es literalmente todo el código que estás colocando en el archivo, esa será la razón.
En primer lugar, necesitas encabezados de plugin en la parte superior del archivo, por ejemplo:
/*
Author: quien sea
Description: lo que sea
Domain Path: /lang
Plugin Name: Algún Nombre
Plugin URI:
Text Domain: algun-dominio
Version: 1.0
*/
En segundo lugar, necesitas activar el plugin desde la página de administración de plugins (Admin > Plugins), pero solo aparecerá en esa lista una vez que el plugin tenga un encabezado válido, como el publicado arriba.
Si ninguno de esos dos puntos es el problema, por favor publica más de tu código (debe haber más, porque faltan los encabezados del plugin en lo publicado).
Espero que ayude.. :)
