WordPress ページ テンプレート内に検索フォームがあります。検索フォームと同じページに結果を表示したいのですが、どうやってもうまくいきません。s
入力名をas に置き換えて、search
WordPress のデフォルト クエリをバイパスし、アクション フィールドを空白のままにして、現在のページのパーマリンクと の両方を使用しget_permalink
、echo 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 ページが見つからないというエラーがスローされます。
何か助けていただければ幸いです。私はこれに数時間取り組んできましたが、それが得られないようです。前もって感謝します。