为什么〈?php会获取搜索表单();?>结果显示为空白页?

toiithl6  于 2023-01-16  发布在  PHP
关注(0)|答案(3)|浏览(140)

我正在尝试在我的博客页面上实现搜索功能(网站是从头开始建立的,没有使用WordPress主题)。
我在archive.php文件中添加了这行代码<div class="search-blog"><?php get_search_form(); ?></div>,还使用在线找到的示例代码在主题目录中添加了一个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来实际显示搜索结果)。但这使事情变得更糟,因为博客页面根本没有加载。
我不知道我在这里做错了什么。任何帮助都将非常感谢!

3hvapo4f

3hvapo4f1#

你能用get_header()函数代替包含头文件的方法再试一次吗?

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

这里代替行2

<?php get_header(); ?>

能用这个吗?

xqnpmsa8

xqnpmsa82#

还有最后一个被忽视的变化

<?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(); ?>

搜索词文本框类型必须为“文本”

dhxwm5r4

dhxwm5r43#

使用以下代码在主题中添加名为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(); ?>

相关问题