wordpress站内搜索结果页面URL伪静态的方法

刘亚茹seo

站内搜索页面的优化一直被很多人忽略,只是按cms自带的默认设置,其实搜索结果页是一块宝藏,url重写是提升的重要一步。那么,wordpress站内搜索结果页URL伪静态如何操作呢?

在wordpress后台设置固定链接可以实现文章、分类、标签等页面的URL伪静态形式,但是wordpress站内搜索结果页面的URL依然是“http://域名/?s=关键字”的动态URL形式,部分WP博主觉得不符合SEO要求,希望把搜索结果页面的URL也实现“http://域名/search/关键词”的伪静态形式,实现方法也很简单。

在当前主题的functions.php文件第一行代码 <?php 下面添加以下代码:

function tongleer_search_url_rewrite() {
    if ( is_search() && ! empty( $_GET['s'] ) ) {
        wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( 's' ) ) );
        exit();
    }
}
add_action( 'template_redirect', 'tongleer_search_url_rewrite' );

保存文件即可。

附方法二:通过在.htaccess文件添加伪静态规则也可以实现,把下面的代码添加到网站根目录的.htaccess文件(对支持.htaccess的主机有效)

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

如何屏蔽搜索结果页中的一些不必要的内容?文章来源:https://liuyaru.com/

在WordPress搜索结果页中搜索某些关键词的时候可能会将:关于我们、联系我们等page类型的页面也搜索出来。但是这些内容一般都不是用户所需要的,所以我们可以将这些内容从WordPress的搜索结果页剔除掉。打开当前的functions.php文件并加入以下代码:

function is_type_page() {
global $post;
if ($post->post_type == 'page') {
return true;
} else {
return false;
}
}

之后打开当前主题的搜索结果页文件(search.php):

找到<?php while (have_posts()) : the_post(); ?> ,并在这段代码后添加:

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

这样即可将所有page类型的页面从搜索结果页中删除了。文章来源:https://liuyaru.com/

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注