web-dev-qa-db-fra.com

changer le comportement de get_search_form

J'ai créé une fonction pour afficher une boîte de recherche et l'ai nommée my_get_search_form(). Il s’agit d’une copie de la fonction get_search_form() originale.

Lorsque j'appelle la fonction, la sortie est la suivante: Search in http://localhost/wp_ex_3/ <AN EMPTY BOX> <A BROKEN IMAGE LINK>.

Comment puis-je modifier cet affichage laid et ne pas afficher http://localhost/wp_ex_3/. Je devrais dire que dans la définition de la fonction, il n'y a pas d'instruction "search in", donc une autre fonction a provoqué ce comportement. code source de la fonction sur developer.wordpress.org: https://developer.wordpress.org/reference/functions/get_search_form/#source-code .

1
gary

vous n'avez pas besoin d'ajouter une autre fonction pour obtenir le formulaire de recherche. Si vous souhaitez modifier l'apparence du formulaire de recherche ou ajouter d'autres éléments, vous devez ajouter le searchform.php à votre thème.

Cela pourrait ressembler à ceci:

    <form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>">
        <input type="search" class="search-field" placeholder="Suchen …" value="<?php echo get_search_query() ?>" name="s" title="Suche nach:" />
        <input type="submit" class="search-submit" value="Suchen" />
    </form>

Chaque fois que vous appelez la fonction get_search_form(), elle renvoie le contenu du fichier searchform.php. Vous pouvez y ajouter autant de champs de formulaire que vous le souhaitez.

1
levelzwo

Changer le comportement par défaut ou le formulaire de recherche est nécessaire selon la conception du thème. Voici un exemple de ce que je fais:

add_filter('get_search_form', 'elevation_search_form');

function elevation_search_form($form) {
    $form = '<form action="' . esc_url( home_url( '/' ) ) . '" method="get" class="search-form">
        <input type="text" name="s" id="s" class="search" placeholder="Search for.." value="' . esc_attr( get_search_query() ) . '" required>
        <button type="submit" id="search-submit" class="search-submit"><i class="fa fa-search"></i></button>
        </form>';
return $form;
}
0
Liton Arefin

Si vous souhaitez modifier le comportement de recherche, il vous suffit d'ajouter vos propres champs au formulaire.

<form role="search" method="get" id="searchform" action="http://www.test.dev/">
<div>
<label for="s">Search for:</label>
<input type="text" value="" name="s" id="s" />
<input type="hidden" value="1" name="sentence" />
<input type="hidden" value="product" name="post_type" />
<input type="submit" id="searchsubmit" value="Search" />
</div>
</form>

Ce formulaire de recherche, une fois soumis, générera l'URL suivante:

http://www.test.dev/?s={query}&sentence=1&post_type=product
0
Owais Alam