站內搜索對於網站的優化也是非常重要的,一個良好的站內搜索可以幫助用户更快的找到網站內容,從而增加網站頁面點擊量而且適當的讓搜索引擎收站內搜索結果頁也可以增加網站引索量。下面小編就來教大家一步一步的優化搜索結果頁。經常上薇曉朵 (v7v3) 的朋友一定會發現在在薇曉朵使用站內搜索有一定幾率會直接跳入文章內容頁而不是搜索結果,其實這是因為只有一篇文章包含你所搜索的內容所以才會直接跳入文章頁。
實現方法:
add_action('template_redirect', 'wxd_single_post');
function wxd_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 用户體驗優化:當搜索結果只包含一篇文章時則直接轉跳到文章
接下來是屏蔽搜索結果頁中的一些不必要的內容,在 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 類型的頁面從搜索結果頁中刪除了。
最後是搜索結果的偽靜態,WordPress 的搜索結果頁默認是"http://abc.com/?s=關鍵詞" 這種形式的,而且 WordPress 的後台固定鏈接頁面也沒有提供搜索結果頁的偽靜態選擇。那麼我們如何來對 WordPress 搜索結果頁做偽靜態呢?其實很簡單隻需在 functions.php 文件中加入一段代碼即可。
function wxd_search_url_rewrite() {
if ( is_search() && ! empty( $_GET['s'] ) ) {
wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( 's' ) ) );
exit();
}
}
add_action( 'template_redirect', 'wxd_search_url_rewrite' );
加上以上代碼後搜索結果頁的鏈接就由 「http://abc.com/?s=關鍵詞」 這種形式變成了 「http://abc.com/search/關鍵詞」 這種形式的鏈接了。當然搜索結果還可以通過 Rewrite(url 重寫) 來做偽靜態,代碼如下:
RewriteCond %{QUERY_STRING} ?s=([^&]+) [NC]
RewriteRule ^$ /search/%1/? [NC,R,L]