WordPress搜索框搜索词热度推荐功能

分类栏目:案例分享

160

现在很多平台都有热词推荐功能,微博热搜、QQ音乐搜索框推荐……现在已经形成了一种流行趋势。其实我们也可以把这个功能实现到个人网站上哦。


Search Analytics 将记录用户的搜索记录,并分组统计这些搜索词的次数以及相关文章结果数等信息。通过这些统计分析信息,我们可以很清楚地了解到用户想要什么内容,以便针对性地发布相关的内容,提高用户满意度。

Search Analytics 特性

  • 记录通过WordPress内置的搜索表单进行的所有搜索查询。

  • 排除具有特定用户角色或特定IP地址的用户进行的搜索

  • 排除在某些条件下进行的重复搜索(符合GDPR要求)

  • 选择允许哪些用户角色可以查看统计信息

  • 按时间段过滤统计信息,有/没有搜索结果

  • 查看每个搜索词的个人统计数据

  • 将当前视图中的数据导出到CSV

  • 轻松从历史记录中删除某些搜索词

  • 如果需要重置,可轻松从数据库中删除所有历史记录

  • 轻松清除历史记录,而无需进行一般清理

  • 仪表板小工具可快速浏览上周的搜索统计信息

  • 多站点兼容


Search Analytics 下载

你可以在WordPress后台搜索 Search Analytics 进行在线安装,或者通过WordPress镜像站下载:http://wp101.net/plugins/search-analytics/

汉化包下载:解压后将里面的 .mo 和 .po 文件上传到 /wp-content/languages/plugins 目录即可生效。
https://pan.baidu.com/s/1AtgNpfZjex6t7qXcCgIwGA      提取码:8ucp

 

如何调用搜索最多的词

项目需要调用用户近期热搜的词,但是插件自身没有提供现成的函数,所以只能手动添加,代码如下:

/**
 * 获取热搜词
 */
function wpkj_get_popular_searches( $month = 3, $limit = 10, $title = false ){
    if( !class_exists('MWTSA') ) return;
    global $wpdb;
    $sql = "SELECT t.term, t.total_count FROM `{$wpdb->prefix}mwt_search_terms` t 
            INNER JOIN `{$wpdb->prefix}mwt_search_history` h ON t.id = h.term_id 
            WHERE h.count_posts > 0 AND DATE_SUB( CURDATE(), INTERVAL {$month} month ) <= h.datetime GROUP BY h.term_id 
            ORDER BY t.total_count DESC LIMIT {$limit}";
    $results = $wpdb->get_results($sql, ARRAY_A);
    if( $results && !is_wp_error( $results ) ){
        $html = '<div class="popular-searches">';
        if( $title ) $html .= '<h2 class="searches-title">'. htmlspecialchars($title) .'</h2>';
        $html .= '<ul class="searches-ul">';
        $home_url_slash = get_option('home') . '/';
        $i = 1;
        foreach( $results as $result ) {
            //var_dump($result);
            $span_class ='item-'.$i;
            if( $i > 4 ) $span_class ='item-'.$i.' span-gray';
            $html .= '<li class="search-item"><span class="'.$span_class.'">'.$i.'</span><a href="'. $home_url_slash . '?s=' . $result['term'] . '">'. htmlspecialchars($result['term']) .'</a></li>';
            $i++;
        }
        $html .= '</ul>';
        $html .= '</div>';
        return $html;
    }
}

将上面的代码添加到你的主题的 functions.php 文件,然后在希望显示这些热搜词的地方,通过下面的代码进行调用即可:

if(function_exists('wpkj_get_popular_searches')) {

    echo wpkj_get_popular_searches( 3, 10, '热搜');

}

如上所示,函数 wpkj_get_popular_searches()支持3个参数:

  • $month :月数,默认为查询最近3个月的数据

  • $limit :显示的词数,默认为10个词

  • $title :标题,默认为空