首页 > 新闻资讯 > wordpress站内搜索优化方案:伪静态、剔除无关内容

wordpress站内搜索优化方案:伪静态、剔除无关内容

2条评论
标签:
更多

站内搜索对于网站的优化也是非常重要的,一个良好的站内搜索可以帮助用户更快的找到网站内容,从而增加网站页面点击量而且适当的让搜索引擎收站内搜索结果页也可以增加网站引索量。

实现方法:

 

1
2
3
4
5
6
7
8
9
add_action('template_redirect', 'v7v3_single_post');
function v7v3_single_post() {
    if (is_search()) {
        global $wp_query;
        if ($wp_query->post_count == 1) {
            wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
        }
    }
}

将以上代码加入到当前的使用的主题functions.php文件中即可。

接下来是屏蔽搜索结果页中的一些不必要的内容,在wordpress搜索结果页中搜索某些关键词的时候可能会将:关于我们、联系我们等page类型的页面也搜索出来。但是这些内容一般都不是用户所需要的,所以我们可以将这些内容从wordpress的搜索结果页剔除掉。

实现方法:

一、打开当前的functions.php文件并加入以下代码:

 

1
2
3
4
5
6
7
8
function is_type_page() {
global $post;
if ($post->post_type == 'page') {
return true;
} else {
return false;
}
}

二、打开当前主题的搜索结果页文件(search.php)

找到

 

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

并在这段代码后添加

 

1
<?php if (is_type_page()) continue; ?>

即可将所有page类型的页面从搜索结果页中删除了。

最后是搜索结果的伪静态,wordpress的搜索结果页默认是"http://abc.com/?s=关键词"这种形式的,而且wordpress的后台固定链接页面也没有提供搜索结果页的伪静态选择。那么我们如何来对wordpress搜索结果页做伪静态呢?其实很简单只需在functions.php文件中加入一段代码即可。

 

1
2
3
4
5
6
7
function v7v3_search_url_rewrite() {
    if ( is_search() && ! empty( $_GET['s'] ) ) {
        wp_redirect( home_url( "/search/" ) . urlencode( get_query_var('s' ) ) );
        exit();
    }  
}
add_action( 'template_redirect', 'v7v3_search_url_rewrite' );

加上以上代码后搜索结果页的链接就由“http://abc.com/?s=关键词”这种形式变成了“http://abc.com/search/关键词”这种形式的链接了。当然搜索结果还可以通过Rewrite(url重写)来做伪静态,代码如下:

 

1
2
RewriteCond %{QUERY_STRING} \\?s=([^&]+) [NC]
RewriteRule ^$ /search/%1/? [NC,R,L]

参考:维7维3

wordpress

* 版权声明:作者WordPress啦! 转载请注明出处。