簡體   English   中英

為什么<!--?php get_search_form(); ?-->結果是空白頁?

[英]Why does <?php get_search_form(); ?> results in a blank page?

我正在嘗試在我的博客頁面上實現搜索功能(該網站是從頭開始構建的,未使用 WordPress 主題)。

我添加了這行代碼<div class="search-blog"><?php get_search_form(); ?></div> <div class="search-blog"><?php get_search_form(); ?></div>到我的 archive.php 文件。 我還使用在網上找到的示例代碼將 searchform.php 文件添加到我的主題目錄中。 這里是:

<?php /* Template Name: Blog */ ?>
<?php include 'header.php'; ?>

<form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>">
    <label>
        <span class="screen-reader-text"><?php echo _x( 'Search for:', 'label' ) ?></span>
        <input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Search Blog Posts', 'placeholder' ) ?>" value="<?php echo get_search_query() ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" />
    </label>
<input type="submit" class="search-submit" value="<?php echo esc_attr_x( ' >', 'submit button' ) ?>" />
</form>

<?php include 'footer.php'; ?>

但是,當我在搜索框中輸入搜索詞時,我得到一個空白頁面,僅顯示頁腳。 為什么? 我做了一些研究,並將 search.php 添加到主題目錄中(一些建議 search.php 需要實際顯示搜索結果)。 但這讓事情變得更糟,因為博客頁面根本無法加載。

我不確定我在這里做錯了什么。 任何幫助將不勝感激!

您可以使用 get_header() function 而不是包含 header 再試一次嗎?

出色地

<?php /* Template Name: Blog */ ?>
<?php include 'header.php'; ?>

這里而不是第 2 行

<?php get_header(); ?>

你能用這個嗎?

最后一個被忽視的變化;

<?php /* Template Name: Blog */ ?>
<?php get_header(); ?>
<form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>">
<label> <span class="screen-reader-text"><?php echo _x( 'Search for:', 'label' ) ?></span> 
<input type="text" class="search-field" placeholder="<?php echo esc_attr_x( 'Search Blog Posts', 'placeholder' ) ?>" value="<?php echo get_search_query() ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" /</label>
<input type="submit" class="search-submit" value="<?php echo esc_attr_x( ' >', 'submit button' ) ?>" />
</form>
<?php get_footer(); ?>

搜索詞文本框類型必須是“文本”

使用以下代碼在名為searchform.php的主題中添加一個文件

<form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>">
    <label>
        <span class="screen-reader-text"><?php echo _x( 'Search for:', 'label' ) ?></span>
        <input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Search Blog Posts', 'placeholder' ) ?>" value="<?php echo get_search_query() ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" />
    </label>
<input type="submit" class="search-submit" value="<?php echo esc_attr_x( ' >', 'submit button' ) ?>" />
</form>

然后單獨創建一個名為search.php的文件,其中包含以下內容:

<?php get_header(); ?>
    <?php //this prints out your search form 
    get_search_form(); ?>
    <h1 class="page-title search-page-title">
        search results for <?php echo get_search_query(); ?>
    </h1>
    <?php if ( have_posts() ) : ?>
        <?php while ( have_posts() ) : the_post(); ?>
            <?php the_title(); ?>
        <?php endwhile; ?>
    <?php else: ?>
        No results for "<?php echo get_search_query(); ?>
    <?php endif; ?>


<?php get_footer(); ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM