Skip to main content

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.

Leave a Reply

Suna
Whatsapp