2

WordPress ページ テンプレート内に検索フォームがあります。検索フォームと同じページに結果を表示したいのですが、どうやってもうまくいきません。s入力名をas に置き換えて、searchWordPress のデフォルト クエリをバイパスし、アクション フィールドを空白のままにして、現在のページのパーマリンクと の両方を使用しget_permalinkecho esc_url( get_permalink( get_page_by_title( 'Page_Template' ) ) )カスタム ループを記述してみました。私が試したことはすべて、404ページが見つからないというエラーをスローするか、ホームページにリダイレクトするようです。

私が使用している変更された検索フォームとループは次のとおりです。

<form method="get" id="searchform" action="<?php echo esc_url( get_permalink( get_page_by_title( 'Page_Template' ) ) )?>">
    <label for="s" class="assistive-text">Search</label>
    <input type="text" class="field" name="search" id="search" placeholder="Search" />
    <input type="submit" class="submit" name="submit" id="searchsubmit" value="Search" />
</form>


<?php
    if ( isset( $_REQUEST[ 'search' ] ) ) {
        // run search query
        query_posts( array(
            's' => $_REQUEST[ 'search' ],
            'paged' => get_query_var('paged')
        ) );

        // loop
        if ( have_posts() ) : while ( have_posts() ) :
            echo '<li>';
            echo '<a href="'.the_permalink().'">'.the_title().'</a>';
            echo '</li>';
        endwhile; endif;

        // return to original query
        wp_reset_query();
    }?>  

この例では、404 ページが見つからないというエラーがスローされます。

何か助けていただければ幸いです。私はこれに数時間取り組んできましたが、それが得られないようです。前もって感謝します。

4

0 に答える 0