我正在使用我自己的自定义WordPress主题,使用空白的默认模板启动。我没有编辑search.php文件。
我的很多WordPress帖子都是Pages。不幸的是,网站搜索只检索帖子,而不是页面。
知道如何让主题搜索帖子和页面吗?
以下是search.php的大部分内容:
<?php if (have_posts()) : ?>
<h3>Search Results</h3>
<?php include (TEMPLATEPATH . '/inc/nav.php' ); ?>
<?php while (have_posts()) : the_post(); ?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
<?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>
<div class="entry">
<?php the_excerpt(); ?>
</div>
</div>
<?php endwhile; ?>
<?php include (TEMPLATEPATH . '/inc/nav.php' ); ?>
<?php else : ?>
<h3>No posts found.</h3>
<?php endif; ?>
答案 0 :(得分:34)
将此代码添加到functions.php文件中。
function wpshock_search_filter( $query ) {
if ( $query->is_search ) {
$query->set( 'post_type', array('post','page') );
}
return $query;
}
add_filter('pre_get_posts','wpshock_search_filter');
http://wpth.net/limit-wordpress-search-results-to-specific-post-types
答案 1 :(得分:0)
缺少按发布日期而非相关性排名的网页搜索和搜索结果是典型的WP问题。试试http://wordpress.org/extend/plugins/relevanssi/
答案 2 :(得分:0)
WP搜索http://wpsear.ch/具有该功能。您可以调整要在结果页面中显示的帖子类型。
答案 3 :(得分:0)
在您的search.php中,找到The Loop并将其插入到代码之后。您可以识别出Loop,因为它通常以以下内容开头:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>
要插入的代码:
if (is_search() && ($post->post_type=='page')) continue;
因此,您的代码应如下所示:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>
<?php if (is_search() && ($post->post_type=='page')) continue; ?>
让我知道它是否有效。