Wordpress搜索结果

时间:2010-03-30 17:39:55

标签: php wordpress

我为wordpress创建了一个searchfrom.php但是它给了我一个错误的回报,你可以自己尝试搜索here

以下是我的搜索表单的代码

<form method="get" id="searchform" action="<?php bloginfo('home'); ?>/">
<input type="text" class="form-text" value="<?php echo wp_specialchars($s, 1); ?>" name="s" id="s" />
<input type="submit" id="searchsubmit" value="Search" class="goField" />
</form>

以下是我的search.php页面的代码

get_header(); ?>
  <div id="BodyWrap">
<div id="mainCont">
<?php get_sidebar(); ?>
<div id="mainCopy">

    <div id="content" class="narrowcolumn" role="main">

    <?php if (have_posts()) : ?>

        <h2 class="pagetitle">Search Results</h2>

        <div class="navigation">
            <div class="alignleft"><?php next_posts_link('&laquo; Older Entries') ?></div>
            <div class="alignright"><?php previous_posts_link('Newer Entries &raquo;') ?></div>
        </div>


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

            <div <?php post_class() ?>>
                <h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
                <small><?php the_time('l, F jS, Y') ?></small>

                <p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?></p>
            </div>

        <?php endwhile; ?>

        <div class="navigation">
            <div class="alignleft"><?php next_posts_link('&laquo; Older Entries') ?></div>
            <div class="alignright"><?php previous_posts_link('Newer Entries &raquo;') ?></div>
        </div>

    <?php else : ?>

        <h2 class="center">No posts found. Try a different search?</h2>
        <?php get_search_form(); ?>

    <?php endif; ?>

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

它确实进行了搜索,但是有“at | Uncategorized | No comment”,这甚至不是搜索词的一部分。

4 个答案:

答案 0 :(得分:1)

哦,我明白了。您想知道为什么它列出了类别,即使它们与搜索词不匹配? 嗯,这是默认的WordPress行为。我想你可以改变它,但实际上我不明白为什么。


Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?>

部分在您的search.php中,显示类别和评论计数。但是,如果您删除上述代码,则不会显示类别和评论计数(即使类别与您的搜索字词匹配)。

如果您只想显示与搜索字词相同的类别,则可以使用此代码替换上面的代码:


<?php
foreach(get_the_category() as $cat){
    if(strtolower($cat->cat_name)==strtolower($_GET['s'])){
        $match = true;
    }
}
if($match){ echo 'Posted in '; }
foreach(get_the_category() as $cat){
    if(strtolower($cat->cat_name)==strtolower($_GET['s'])){
        echo $cat->cat_name;
        echo ', ';
    }
}
edit_post_link('Edit', '', ' | ');
comments_popup_link('No Comments »', '1 Comment »', '% Comments »');
?>
如果类别与搜索词匹配,它应该产生类似的东西:

Posted in Category That Matches, Edit | 1 Comment

如果类别与术语不匹配:

Edit | 1 Comment

如果您不希望显示评论数(或评论关闭),请从我的代码中删除comments_popup_link('No Comments »', '1 Comment »', '% Comments »');行。

答案 1 :(得分:0)

  

它确实进行搜索但有   这个“at |未分类|没有评论”   这甚至不是搜索的一部分   术语

您必须编辑page.php或single.php,以排除搜索页面显示评论/类别。

答案 2 :(得分:0)

也许将searchform.php更改为this

答案 3 :(得分:0)

删除包含在

中的行。这将摆脱“发布在未分类|评论关闭”。

它显示的原因是因为它是搜索结果的元信息。它将显示在您的结果中,即使它不是搜索词,因为它与之相关联。

总而言之,您的search.php页面应如下所示:

get_header(); ?>
<div id="BodyWrap">
<div id="mainCont">
<?php get_sidebar(); ?>
<div id="mainCopy">

    <div id="content" class="narrowcolumn" role="main">

    <?php if (have_posts()) : ?>

        <h2 class="pagetitle">Search Results</h2>

        <div class="navigation">
            <div class="alignleft"><?php next_posts_link('&laquo; Older Entries') ?></div>
            <div class="alignright"><?php previous_posts_link('Newer Entries &raquo;') ?></div>
        </div>


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

            <div <?php post_class() ?>>
                <h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
                <small><?php the_time('l, F jS, Y') ?></small>

            </div>

        <?php endwhile; ?>

        <div class="navigation">
            <div class="alignleft"><?php next_posts_link('&laquo; Older Entries') ?></div>
            <div class="alignright"><?php previous_posts_link('Newer Entries &raquo;') ?></div>
        </div>

    <?php else : ?>

        <h2 class="center">No posts found. Try a different search?</h2>
        <?php get_search_form(); ?>

    <?php endif; ?>

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