Loading
0

如何给WordPress 自带的搜索功能添加过滤只搜索文章的标题和结果中只有一个文章时自动跳转到该链接

公众号搜索菜鸟站长之家 腾讯云服务器活动

教程开始:

如果想让 WordPress 自带的搜索功能只搜索文章标题,让搜索结果更加精确(其实WordPress 自带的搜索功能本来模糊查找就很弱),可以将下面的代码添加到当前主题functions.php中:

// 只搜索文章标题
function wpse_11826_search_by_title( $search, $wp_query ) {
    if ( ! empty( $search ) && ! empty( $wp_query->query_vars['search_terms'] ) ) {
        global $wpdb;
        $q = $wp_query->query_vars;
        $n = ! empty( $q['exact'] ) ? '' : '%';
        $search = array();
        foreach ( ( array ) $q['search_terms'] as $term )
            $search[] = $wpdb->prepare( "$wpdb->posts.post_title LIKE %s", $n . $wpdb->esc_like( $term ) . $n );
        if ( ! is_user_logged_in() )
            $search[] = "$wpdb->posts.post_password = ''";
        $search = ' AND ' . implode( ' AND ', $search );
    }
    return $search;
}
add_filter( 'posts_search', 'wpse_11826_search_by_title', 10, 2 );

 

WordPress搜索结果中只有一个文章时自动跳转到该链接

当访问者通过WordPress自带的搜索查找文章时,如果返回的结果只有一篇文章,可以直接跳转到这篇文章,从而提高用户体验。

同样将下面的代码添加到当前主题functions.php中

add_action('template_redirect', 'redirect_single_post');
function redirect_single_post() {
    if (is_search()) {
        global $wp_query;
        if ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1) {
            wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
            exit;
        }
    }
}

 

文章声明:
1、本站文章来源于互联网,仅供学习交流使用,严禁用于商业用途,因此造成的一切法律后果自行承担。
2、本站不对文章内容的完整性和安全性负责,请自行辨别,如发现有问题,请及时联系我们进行处理。
3、如果你有比较好的文章需要发布,可以联系菜鸟站长之家小编,或者自行点击 投稿
4、若文章中有侵权或不适当内容,请留言告知我们,本站会第一时间进行处理。
5、转载请保留原文地址,违者后果自负,本站保留一切法律追责权力。
6、如遇下载地址失效,请留言告知或者联系客服获取。