Ce este în neregulă cu utilizarea mea a add_filter

17 apr. 2011, 10:50:33
Vizualizări: 327
Voturi: 0

Am vrut să înlocuiesc căutarea implicită din WordPress cu una personalizată, însă când am pus următorul cod în fișierul plugin-ului, acesta nu a înlocuit căsuța de căutare implicită (fără erori, nimic), iar când am pus codul în functions.php a funcționat perfect și a înlocuit căsuța de căutare implicită.

Poate cineva să-mi spună de ce nu funcționează în fișierul plugin-ului? Mulțumesc!

function DynamiteSearch($form) {
    $form = '<form method="get" id="searchform" action="' . get_option('home') . '/" >
    <div><label class="hidden" for="s">' . __('Caută:') . '</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(__('Caută')).'" />
    </div>
    </form>';
    return $form;
}

add_filter('get_search_form', 'DynamiteSearch');
2
Comentarii

Ești sigur că plugin-ul este activat? Dacă da, ar fi de ajutor dacă ai putea posta întregul fișier al plugin-ului.

scribu scribu
17 apr. 2011 11:15:42

Plugin-ul meu are doar atâta cod cu un antet obișnuit de plugin. Pot să activez plugin-ul în mod normal, fără nicio problemă.

insightful insightful
18 apr. 2011 14:24:43
Toate răspunsurile la întrebare 2
3

Am curățat codul tău și am adăugat toate informațiile din header pentru instalare. Plugin-ul tău funcționează perfect, l-am testat!

/*
Autor: oricine
Nume Plugin: Un Nume
Plugin URI: 
Text Domain: un-domeniu
Versiune: 1.0
*/

function DynamiteSearch($form) 
{
    $form = "<form method = 'get' id = 'searchform' action = ' ".site_url()." ' >";
    $form .= "<div><label class = 'hidden' for='s'>". __("Caută: ") . "</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(__('Caută'))." ' />";
    $form .= "</div>";
    $form .= "</form>";

    return $form;
}

add_filter('get_search_form', 'DynamiteSearch');

Încearcă să modifici textul butonului de submit pentru a verifica dacă funcționează. Anunță-mă dacă a funcționat pentru tine.

Mulțumesc, Rutwick

17 apr. 2011 19:11:21
Comentarii

Mulțumesc Rutwick! Dar din anumite motive căsuța de căutare de pe site-ul meu încă nu se schimbă. Ai reușit să modifici căsuța de căutare cu acest cod? Mulțumesc pentru informații.

insightful insightful
18 apr. 2011 14:21:32

Da, Arvind... Am testat prin schimbarea textului butonului și s-a afișat corect. Folosesc tema 'TwentyTen'...

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

Folosești un Plugin de caching, un CDN sau orice altă formă de caching care ar putea să împiedice vizualizarea modificărilor?

Chip Bennett Chip Bennett
16 iun. 2011 20:06:25
0

Dacă codul pe care l-ai postat este literalmente tot codul pe care îl introduci în fișier, acesta este motivul.

În primul rând, ai nevoie de antetul pluginului în partea de sus a fișierului, de exemplu...

/*
    Author: cineva
    Description: orice
    Domain Path: /lang
    Plugin Name: Un Nume
    Plugin URI: 
    Text Domain: un-domeniu
    Version: 1.0
*/

În al doilea rând, trebuie să activezi pluginul din pagina de administrare a pluginurilor (Admin > Plugins), dar acesta va apărea în acea listă doar după ce pluginul are un antet valid, precum cel postat mai sus.

Dacă niciuna dintre aceste două lucruri nu este problema, te rog să postezi mai mult din codul tău (trebuie să fie mai mult, deoarece lipsesc anteturile pluginului din ceea ce ai postat)...

Sper că acest lucru te ajută... :)

17 apr. 2011 12:12:33