Qual è il problema con il mio utilizzo di add_filter
Volevo sostituire la ricerca predefinita di WordPress con la mia ricerca personalizzata, tuttavia quando inserisco il seguente codice nel file del plugin non sostituisce la casella di ricerca predefinita (nessun errore, niente) mentre quando inserisco il codice in functions.php funziona bene e sostituisce la casella di ricerca predefinita.
Qualcuno può dirmi perché non funziona nel file del plugin? Grazie!
function DynamiteSearch($form) {
$form = '<form method="get" id="searchform" action="' . get_option('home') . '/" >
<div><label class="hidden" for="s">' . __('Cerca:') . '</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(__('Cerca')).'" />
</div>
</form>';
return $form;
}
add_filter('get_search_form', 'DynamiteSearch');

Ho pulito il tuo codice e ho inserito tutte le informazioni dell'header per l'installazione. Il tuo plugin funziona bene, l'ho testato!
/*
Autore: chiunque
Nome Plugin: Qualche Nome
URI Plugin:
Dominio Testo: qualche-dominio
Versione: 1.0
*/
function DynamiteSearch($form)
{
$form = "<form method = 'get' id = 'searchform' action = ' ".site_url()." ' >";
$form .= "<div><label class = 'hidden' for='s'>". __("Cerca: ") . "</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(__('Cerca'))." ' />";
$form .= "</div>";
$form .= "</form>";
return $form;
}
add_filter('get_search_form', 'DynamiteSearch');
Prova a cambiare il testo del pulsante di invio per vedere se funziona. Fammi sapere se ha funzionato per te.
Grazie, Rutwick

Grazie Rutwick! Ma per qualche motivo la barra di ricerca sul mio sito non cambia ancora. Sei riuscito a modificare la barra di ricerca con questo codice? Grazie per farmelo sapere.

Sì Arvind... L'ho testato modificando il testo del pulsante e si è visualizzato correttamente. Sto usando il tema 'TwentyTen'...

Se il codice che hai pubblicato è letteralmente tutto il codice che stai inserendo nel file, ecco il motivo.
Innanzitutto hai bisogno degli header del plugin all'inizio del file, ad esempio..
/*
Author: chiunque
Description: qualsiasi cosa
Domain Path: /lang
Plugin Name: Nome del Plugin
Plugin URI:
Text Domain: dominio-testuale
Version: 1.0
*/
In secondo luogo devi attivare il plugin dalla pagina di amministrazione dei plugin (Admin > Plugins), ma apparirà in quella lista solo quando il plugin avrà un header valido, come quello riportato sopra.
Se nessuna di queste due cose è il problema, per favore pubblica più codice (dev'esserci altro, perché mancano gli header del plugin da quanto hai postato)..
Spero che questo aiuti.. :)
