在wordpress中进行基本搜索

时间:2012-12-03 23:26:45

标签: wordpress search

我正在创建一个wordpress模板,我想在其中集成一个简单的搜索表单。我在过去的3天里搜索了很多关于这一点并尝试了几个教程,但我担心有些东西我根本得不到。我有3页搜索:search.phpsearchform.phpsearchpage.php。我阅读的所有教程都提供了类似的代码:

的search.php:

<?php if (have_posts()) : ?>
…
<?php while (have_posts()) : the_post(); ?>
…
<?php endwhile; else: ?>
… <p>The key word <strong><?php the_search_query(); ?></strong> is not on this website.</p>
<?php include (TEMPLATEPATH . "/searchform.php"); ?>
<?php include (TEMPLATEPATH . "/searchpage.php"); ?>
<?php endif; ?>

searchform.php:

<?php 
$querystring = esc_attr(apply_filters('the_search_query', get_search_query()));
$searchstring = "Suchbegriff eingeben";
if (empty($querystring)) { $querystring = $searchstring; }
?>

<form method="get" id="searchform" action="<?php bloginfo('url'); ?>/">
<div>
    <input type="text" name="s" id="s" value="<?php echo $querystring; ?>"
        onblur="if (this.value == '') { this.value = '<?php echo $searchstring; ?>'; }"
        onfocus="if (this.value == '<?php echo $searchstring; ?>') { this.value = ''; }" />
    <input type="submit" id="searchsubmit" value="Suchen" />
</div>
</form>

searchpage.php(改编自page.php):

<?php
/*
Template Name: Search Page
*/
?>

<div id="content">

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

    <div class="blogpost">
        <h2><?php the_title(); ?></h2>
        <?php the_content(); ?>
        <?php $this->posts = $wpdb->get_results($this->request); ?>
    </div> <!-- end class blogpost -->
<?php endwhile; ?>

</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

如果与关键字不匹配则搜索有效。但如果匹配,我只得到… … … … … … …作为输出。我知道必须来自search.php,但我不知道如何改变它。感谢您的建议和帮助,我真的很感激!

1 个答案:

答案 0 :(得分:2)

重要文件是search.php,它显示任何匹配的结果,如果没有匹配则显示失败消息。尝试这样的事情:

<?php
/**
 * Search results page
 */
?>
<?php if ( have_posts() ): ?>
<h2>Search Results for '<?php echo get_search_query(); ?>'</h2> 
<ol>
<?php while ( have_posts() ) : the_post(); ?>
    <li>
            <h2><a href="<?php esc_url( the_permalink() ); ?>" title="Permalink to <?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
            <time datetime="<?php the_time( 'Y-m-d' ); ?>" pubdate><?php the_date(); ?> <?php the_time(); ?></time> <?php comments_popup_link('Leave a Comment', '1 Comment', '% Comments'); ?>
            <?php the_content(); ?>
    </li>
<?php endwhile; ?>
</ol>
<?php else: ?>
<h2>No results found for '<?php echo get_search_query(); ?>'</h2>
<?php endif; ?>

<?php get_sidebar(); ?>
<?php get_footer(); ?>