Qual è il problema con il mio utilizzo di add_filter

17 apr 2011, 10:50:33
Visualizzazioni: 327
Voti: 0

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');
2
Commenti

Sei sicuro che il plugin sia attivato? Se lo è, sarebbe utile se potessi pubblicare l'intero file del plugin.

scribu scribu
17 apr 2011 11:15:42

Il mio plugin ha solo questa quantità di codice con l'intestazione regolare del plugin. Sono in grado di attivare il plugin normalmente, nessun problema con quello.

insightful insightful
18 apr 2011 14:24:43
Tutte le risposte alla domanda 2
3

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

17 apr 2011 19:11:21
Commenti

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.

insightful insightful
18 apr 2011 14:21:32

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

Rutwick Gangurde Rutwick Gangurde
18 apr 2011 18:38:33

Stai usando un Plugin di caching, un CDN o qualsiasi altra forma di caching che potrebbe impedirti di vedere le modifiche apportate?

Chip Bennett Chip Bennett
16 giu 2011 20:06:25
0

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.. :)

17 apr 2011 12:12:33