WordPress模板層次16:搜尋模板search.php

huangbangqing12發表於2018-07-08

當我們在使用WordPress中使用搜尋功能時,就會用到search.php模板,它用於顯示搜尋結果頁面。

搜尋框的兩種新增方式

第一種方式:外觀 >> 工具

為了讓網站擁有搜尋框,可以在 WordPress 後臺,進入外觀 >> 工具,並確保我們啟用了搜尋小工具:

You must be logged in to view the hidden contents.

第二種方式:get_search_form()模板標籤

可以使用函式:get_search_form()。它同樣會為我們顯示搜尋框。它的功能實際上就是:通過呼叫searchform.php來顯示搜尋框

所以,如果您的網站主題中有一個自定義的searchform.php檔案,WordPress將使用這個自定義的php檔案來顯示搜尋框。

但是,如果您沒有自定義的 searchform.php ,WordPress將顯示預設的搜尋框

search.php模板

讓我們來看看網站前臺的搜尋框的樣子。

進入到Blog頁面,然後點選搜尋單詞Hello:

搜尋結果頁面如下圖:

可以看到:

模板結構圖中,可以看到search.php檔案,這個檔案決定我們們的搜尋頁面長什麼樣子:

來到示例主題中的search.php模板。可以看到這些程式碼複合我們的預期:

<?php get_header(); ?>

    <div class="container" role="main">

        <div class="row">

            <div class="col-md-12">

                <div class="page-header">   
                    <h1><?php wp_title( '' ); ?></h1>/***wp_title()輸出了搜尋結果的標題***/
                </div>

                <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>/***迴圈***/

                    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>/***文章標題***/

                    <p class="meta">/***文章相關的資訊(作者、時間、評論)***/
                        By <?php the_author_posts_link(); ?> 
                        on <?php echo the_time('l, F jS, Y'); ?> 
                        <a href="<?php comments_link(); ?>"><?php comments_number(); ?></a>
                </p>

                    <?php the_content(); ?>/***文章的內容***/

                <?php endwhile; else: ?>/***找不到搜尋結果時,執行else中的語句***/

                    <p>No results :(</p>

                    <p><?php get_search_form(); ?></p>/***呼叫搜尋框***/

                <?php endif; ?>

            </div>      

        </div>

    </div>

<?php get_footer(); ?>

當找不到搜尋結果時,執行else中的語句,我們需要考慮在網站中找不到搜尋詞的情況,也就是說,如果使用者在網站上搜尋一些網站上沒有的東西,比如hehe,我們應該給出提示資訊,並且再給出一個搜尋框,方便使用者重新搜尋:

這在WordPress中是一種常見做法,所有的搜尋功能也都應該這麼做。

其實,大家還需要考慮的是:網站是否需要搜尋框,如果內容很多,那麼搜尋框就很有必要,相反,如果網站只是幾個靜態頁面,新增一個搜尋框就顯得有些多餘。

相關文章