Daca doriti sa limitati formularul de cautare pe site-ul WordPress la anumite tipuri de posturi la nivel global, exista si un mod usor de facut: Se adauga aceasta functie in fisierul functions.php
function prefix_limit_post_types_in_search( $query ) { if ( $query->is_search ) { $query->set( 'post_type', array( 'post','page', 'portfolio' ) ); } return $query; } add_filter( 'pre_get_posts', 'prefix_limit_post_types_in_search' );
Dar sa presupunem ca doriti sa aveti o cautare specifica a formularului de cautare limitata la un tip de postare, dar sa permiteti altor formulare de cautare sa caute toate tipurile de postari?
Cele mai multe tutoriale pe care le-am intalnit sugereaza ca recreezi toate marcarile formularului de cautare si apoi adaugi o intrare ascunsa in formularul de mai jos:
<input type="hidden" name="post_type" value="portfolio">
Apoi, puteti incarca in mod conditionat acel camp ascuns pe sabloanele specifice acolo unde este necesar.
Cu toate acestea, daca utilizati get_search_form() si nu doriti sa inlocuiti complet toate marcajele formularului de cautare, o alternativa ar fi sa faceti o inlocuire a sirului inainte de a trimite formularul:
<?php $search = get_search_form( false ); $find = '</form>'; $replace = '<input type="hidden" name="post_type" value="portfolio">' . $find; $search = str_replace( $find, $replace, $search ); echo $search; ?>
Pentru mai multe informatii despre modul in care functioneaza acest filtru, puteti citi documentele online din codul WordPress propriu-zis.