我为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('« Older Entries') ?></div>
<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></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 »', '1 Comment »', '% Comments »'); ?></p>
</div>
<?php endwhile; ?>
<div class="navigation">
<div class="alignleft"><?php next_posts_link('« Older Entries') ?></div>
<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></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”,这甚至不是搜索词的一部分。
答案 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('« Older Entries') ?></div>
<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></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('« Older Entries') ?></div>
<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></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(); ?>