如何在WordPress中使用多個搜索表單


最近,我們向您展示瞭如何限制WordPress中特定帖子類型的搜索結果。 現在,我們將向您展示如何創建不同的/多個搜索表單。 這樣,每種形式都可以限於搜索特定的帖子類型。 儘管這不是很難,但需要您對WordPress模板有基本的了解。

首先,您將需要一些搜索表單。 將以下代碼放在您希望它們出現在博客中的任何位置:

為了指定此表單將執行哪種搜索,只需更改隱藏字段的值即可。 現在將其設置為“正常”,但可以是您想要的任何內容。 接下來,我們需要修改search.php文件。 打開它,並用以下代碼替換其中的所有內容(首先將現有代碼複製到剪貼板中,一分鐘之內將需要它):


因此,我們假設您有兩種搜索形式,普通和書籍。 此代碼只是將搜索重定向到處理該特定查詢的php文件。 現在我們只需要創建這些文件。 因此,繼續創建一個normal-search.php和books-search.php文件(只需將“ normal”和“ books”替換為您一直使用的任何值)即可。

現在,在normal-search.php中復制並粘貼以下代碼:

$args = array( 'post_type' => 'post' );
$args = array_merge( $args, $wp_query->query );
query_posts( $args );

此後,立即粘貼從search.php文件複製的剪貼板中的循環代碼。 這些代碼一起只能搜索您的普通博客文章。 現在,在books-search.php文件中添加以下代碼,然後在其之後再次粘貼循環:

$args = array( 'post_type' => 'books' );
$args = array_merge( $args, $wp_query->query );
query_posts( $args );

這將導致WordPress只搜索“書”的自定義帖子類型。 您可以根據需要為任意多個搜索表單重複此過程。