Un articol mai tehnic un pic, însă nu atât de tehnic încât să nu poate fi înțeles.
Problema pleacă de la o necesitate practică: să forțăm căutarea doar în categoriile relevante și nu ȘI în paginile statice sau în categorii mai puțin importante. Cum se poate face asta.
În primul rând trebuie căutat codul formularului de căutare (deci iată partea tehnică). Codul poate fi în fișierul „searchform.php”, dacă este folosit acest fișier în tema activă sau în fișierul „wp-includes/general-template.php” dacă în temă formularul se inserează cu „get_search_form();”. Dacă se folosește o temă premium e posibil ca acest cod să fie în alt fișier, poate în „header.php” sau într-un fișier dintr-un subdirector. Nu există o rețetă generală.
O dată localizat codul trebuie modificat în felul următor:
Codul de căutare original:
<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>"> <label for="s" class="assistive-text"><?php _e( 'Search', 'twentyeleven' ); ?></label> <input type="text" class="field" name="s" id="s" placeholder="<?php esc_attr_e( 'Search', 'twentyeleven' ); ?>" /> <input type="submit" class="submit" name="submit" id="searchsubmit" value="<?php esc_attr_e( 'Search', 'twentyeleven' ); ?>" /> </form>
Codul de căutare modificat:
<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>"> <label for="s" class="assistive-text"><?php _e( 'Search', 'twentyeleven' ); ?></label> <input type="text" class="field" name="s" id="s" placeholder="<?php esc_attr_e( 'Search', 'twentyeleven' ); ?>" /> <input type="hidden" name="cat" id="cat" value="1" /> <input type="submit" class="submit" name="submit" id="searchsubmit" value="<?php esc_attr_e( 'Search', 'twentyeleven' ); ?>" /> </form>
În codul modificat am adăugat linia:
<input type="hidden" name="cat" id="cat" value="1" />
Acest câmp din formularul de căutare este ascuns și „forțează” căutare doar în categoria cu id-ul 1. Dacă se dorește căutarea în mai multe categorii, linia se poate modifica în felul următor:
<input type="hidden" name="cat" id="cat" value="1,3,45,123" />
Cu alte cuvinte la value se scriu id-urile categoriilor separate prin virgulă.
De unde putem afla id-ul categoriei?
Id-ul categoriei se poate afla din admin de la editarea categoriilor. Click pe editare și în url o să aveți ceva de genul:
/wp-admin/edit-tags.php?action=edit&taxonomy=category&tag_ID=96&post_type=post
[..]tag_ID=96[..], unde 96 este id-ul categoriei. Notați acest id și puneți-l în codul arătat.
Succes!