wordpress站内搜索seo优化:伪静态及搜索结果优化
引言:此文由子域名转移而来,因为细微强迫症和放弃子域名而不舍得完全丢弃,所以将会逐步第二次转移文章到主域名上来,二者主题(阿里白秀和D8)均来自大前端,追求完美的同时有一丝小懒,主题就不换了,D8主题用起来挺好。
一般wordpress seo优化中容易忽略的一点是站内搜索seo优化,分为伪静态优化和搜索结果优化。
一、当你搜索关键字时,url会成为“tongleer.com/?s=关键字”的形式,十分不利于seo优化,所以我们要把搜索结果url变为伪静态的形式来符合seo,方法也很简单,具体有二。
方法1、在function.php中键入以下代码即可。
- function tongleer_search_url_rewrite() {
- if ( is_search() && ! emptyempty( $_GET['s'] ) ) {
- wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( 's' ) ) );
- exit();
- }
- }
- add_action( 'template_redirect', 'tongleer_search_url_rewrite' );
方法2、也可以直接将以下代码添加到.htaccess中。
- RewriteCond %{QUERY_STRING} \\?s=([^&]+) [NC]
- RewriteRule ^$ /search/%1/? [NC,R,L]
二、搜索结果优化顾名思义就是将搜索结果做一个优化来为用户带来更好的用户体验。这里有2个方案可执行,去除不必要的搜索结果页面和当搜索结果是1个时直接跳转到该页面。
1、去除不必要的搜索结果页面实现方法。
第一步:在function.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; ?>
2、当搜索结果是1个时直接跳转到搜索页面实现方法。
直接将以下代码添加到function.php中即可。
- add_action('template_redirect', 'tongleer_single_post');
- function tongleer_single_post() {
- if (is_search()) {
- global $wp_query;
- if ($wp_query->post_count == 1) {
- wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
- }
- }
- }