2017-05-01 20 views
1

検索クエリがページタイトルと完全に一致する場合、検索フォームを目的のページに即座にリダイレクトしようとしています。私はかなり近くに来るこのコードを見つけましたが、私はそれがなぜうまくいかないのか見当たりません。正確なワードプレス検索をページにリダイレクト

これは私のfunctions.php

// Redirect on exact match 
function lab_title_match() { 
    if (is_search()) { 
     global $wp_query,$wpdb; 
     $s_str = $wp_query->query_vars['s']; 
     $m = $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts} WHERE post_title = %s",$s_str)); 
     if (!empty($m)) { 
      wp_safe_redirect(get_permalink($m)); 
      exit(); 
     } 
    } 
} 
add_filter('pre_get_posts','lab_title_match'); 

これだけではなく、domein.com/keyword/のdomain.com/keyword/keyword/するリダイレクトの結果です。私はこれを何度も書き直したが、同じ結果を得ている。事前に

感謝:)

答えて

0

私はそれを別の方法を解決しました。正確な検索の代わりに、ただ1つの結果がある限りリダイレクトします。

// Redirect on 1 result 
add_action('template_redirect', 'lab_redirect'); 
function lab_redirect() { 
if (is_search()) { 
    global $wp_query; 
    if ($wp_query->post_count == 1) { 
     wp_redirect(get_permalink($wp_query->posts['0']->ID)); 
    } 
} 
} 
関連する問題