web-dev-qa-db-ja.com

get_search_formの動作の変更

検索ボックスを表示する関数を作成し、my_get_search_form()という名前を付けました。これは元のget_search_form()関数のコピーです。

この関数を呼び出すと、出力はSearch in http://localhost/wp_ex_3/ <AN EMPTY BOX> <A BROKEN IMAGE LINK>になります。

この醜い表示を変更してhttp://localhost/wp_ex_3/を表示しないようにするにはどうすればよいですか。関数定義には"search in"ステートメントがないので、他の関数がこの動作を引き起こしたと言わなければなりません。 developer.wordpress.org上の関数のソースコード: https://developer.wordpress.org/reference/functions/get_search_form/#source-code

1
gary

検索フォームを取得するために別の関数を追加する必要はありません。検索フォームの外観を変更したり、他のアイテムを追加したい場合は、searchform.phpをテーマに追加する必要があります。

それはこのように見えるでしょう:

    <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>

get_search_form()関数を呼び出すたびに、searchform.phpファイルの内容が返されます。そこにあなたが望むだけの数のフォームフィールドを追加することができます。

1
levelzwo

テーマ設計によっては、デフォルトの動作や検索フォームを変更する必要があります。これは私が何をしているかの例です:

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

検索動作を変更したい場合は、フォームに独自のフィールドを追加するだけです。

<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>

この検索フォームを送信すると、次のURLが生成されます。

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