前些天推荐的WordPress搜索统计插件 Search Meter存在一些bug,比如统计不准确;后来发布了相关文章,但搜索结果数不更新……总之就是用着不爽。所以,今天倡萌推荐另外一款插件 Search Analytics。
Search Analytics 将记录用户的搜索记录,并分组统计这些搜索词的次数以及相关文章结果数等信息。通过这些统计分析信息,我们可以很清楚地了解到用户想要什么内容,以便针对性地发布相关的内容,提高用户满意度。
Search Analytics 特性
- 记录通过WordPress内置的搜索表单进行的所有搜索查询。
- 排除具有特定用户角色或特定IP地址的用户进行的搜索
- 排除在某些条件下进行的重复搜索(符合GDPR要求)
- 选择允许哪些用户角色可以查看统计信息
- 按时间段过滤统计信息,有/没有搜索结果
- 查看每个搜索词的个人统计数据
- 将当前视图中的数据导出到CSV
- 轻松从历史记录中删除某些搜索词
- 如果需要重置,可轻松从数据库中删除所有历史记录
- 轻松清除历史记录,而无需进行一般清理
- 仪表板小工具可快速浏览上周的搜索统计信息
- 多站点兼容
- 国家地理定位
Search Analytics 预览
Search Analytics 下载
你可以在WordPress后台搜索 Search Analytics 进行在线安装,或者到这里下载:https://wordpress.org/plugins/search-analytics/。倡萌已将该插件汉化,点击下载简体中文包,解压后将里面的 .mo 和 .po 文件上传到 /wp-content/languages/plugins
目录即可生效。
调用搜索最多的词
项目需要调用用户近期热搜的词,但是插件自身没有提供现成的函数,所以倡萌就自己写了一个,代码如下:
/**
* 获取热搜词
*/
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
:标题,默认为空
样式什么的,就自己去弄吧。以下是倡萌这边项目的一个效果图:
https://jt.wpdaxue.com/?!