繁体   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