Căutați o modalitate de a crea mai multe șabloane de căutare pentru tipuri de postări personalizate? Deși probabil există un plugin pentru asta, am creat un fragment de cod rapid pe care îl puteți folosi pentru a crea mai multe șabloane de căutare pentru tipuri de postări personalizate în WordPress.
Instrucțiuni:
Șablon de căutare
Creați un fișier nou numit search.php și adăugați următorul șablon de căutare. Schimbați $search_refer= CUSTOM_POST_TYPE cu numele tipurilor dvs. de postări. De asemenea, va trebui să schimbați calea șablonului către șablonul corespunzător pe care doriți să afișați rezultatele.
<?
/* Template Name: Search Results */
$search_refer = $_GET["post_type"];
if ($search_refer == 'CUSTOM_POST_TYPE') { load_template(TEMPLATEPATH . '/template_one-name.php'); }
elseif ($search_refer == 'CUSTOM_POST_TYPE') { load_template(TEMPLATEPATH . '/template_two-name.php'); };
?>
Afișați rezultatele căutării
Adăugați acest query_post chiar deasupra buclei în șabloanele de căutare pe care le creați. Nu uitați să schimbați CUSTOM_POST_TYPE pentru fiecare dintre șabloanele dvs.
<?php
$args = array(
'post_type'=> 'CUSTOM_POST_TYPE',
's' => $s,
'paged' => $paged,
);
query_posts($args);
?>
Formular de căutare
Adăugați acest HTML în șablonul pe care doriți să afișați formularul de căutare. Va trebui să schimbați numele CUSTOM_POST_TYPE cu tipul de postare pe care doriți să îl căutați. Va trebui să creați un formular nou pentru fiecare tip de postare personalizată sau să utilizați un meniu de selecție pentru a seta post_type.
<form id="searchform" action="<?php bloginfo('home'); ?>/" method="get">
<input id="s" maxlength="150" name="s" size="20" type="text" value="" class="txt" />
<input name="post_type" type="hidden" value="CUSTOM_POST_TYPE" />
<input id="searchsubmit" class="btn" type="submit" value="Search" />
</form>
Notă: Dacă aceasta este prima dată când adăugați fragmente de cod în WordPress, consultați ghidul nostru despre cum să adăugați corect fragmente de cod în WordPress, pentru a nu vă defecta accidental site-ul.
Dacă v-a plăcut acest fragment de cod, vă rugăm să luați în considerare să consultați celelalte articole ale noastre de pe site, cum ar fi: cele mai bune 43 de teme de fotografie pentru WordPress și cum să creați un formular de contact în WordPress.
Salut, Mulțumesc pentru acest tutorial.
Încerc să creez un formular de căutare personalizat pe care să-l plasez în bara laterală a secțiunii de blog a site-ului meu. Vreau ca formularul de căutare să caute doar în POSTĂRI (postări standard de blog, nu un tip de postare personalizat) – și să ignore orice alt conținut, de ex. pagini. Este posibil să adaptez această metodă pentru a se potrivi cu ceea ce încerc să fac?
Am încercat, dar fără succes.
Mulțumesc mult
Salut Sally,
Încearcă acest tutorial despre cum să filtrezi tipurile de postări din rezultatele căutării. Sper să-ți fie de ajutor 🙂
Miau miau miau-nific )
Perfect. Mulțumesc!
Scuze pentru întrebarea de începător, dar există o modalitate de a merge un nivel mai departe și de a căuta doar într-un meta_field personalizat în cadrul tipului de postare personalizat? Am căutat zile în șir și acesta este cel mai apropiat script pe care l-am putut găsi. În prezent, caută titlurile și conținutul postării, dar am o mulțime de câmpuri personalizate pentru CPT și vreau doar ca utilizatorul să caute un câmp specific. Păreri?
este posibil să adaptezi aceste instrucțiuni pentru a căuta o taxonomie personalizată în loc de o postare personalizată? Încerc să obțin o căutare separată pentru fiecare taxonomie personalizată și nu prea reușesc să înțeleg. Mulțumesc!