多说微博可以看最近访客吗怎么设置成一排几个

/ WordPress最近访客插件:Showguests
一个疯狂的 WordPress 爱好者,喜欢折腾 WordPress 主题,分享 WordPress 资源。如果你也喜欢 WordPress,欢迎和我一起交流!
(C) 2012- · 桂ICP备号-1 · 基于 WordPress · 由
运维 · 托管于> 多说评论框UA显示/博主标记
进行本文的操作之前需要对多说核心脚本embed.js进行本地化操作,由于多说近日更新了js脚本文件,导致教程部分内容失效。
本教程仅适用与之前对多说核心脚本进行过本地化操作同学们。
多说官方链接下载不到embed.js的同学可以下载我的js脚本,只需简单编辑多说插件目录下的WordPress.php文件即可轻松实现本地化。
下载embed.js之后,通过FTP工具将该文件上传至多说插件安装目录下/wp-content/plugins/duoshuo/
接着编辑WordPress.php:
打开【WordPress.php】,搜索“embed.js”,将搜索到的
http://static.&!--?php echo self::DOMAIN;?--&/embed.js
这两行更改为你的地址如/wp-content/plugins/duoshuo/embed_v.js
完成以上步骤之后,刷新博客文章页面,如果评论框正常显示,则说明本地化成功。
接着修改embed.js实现ua显示和博主标记显示。
注:上面直接下载我的embed.js可以省略下面的修改步骤
现在embed.js的最上面添加以下代码:
//判断是否为博主
function sskadmin(e) {
var ssk = '';
if(e.user_id==【你的多说id】){
ssk = '&span class=&sskadmin&&博主【此处可以自定义文字】'
return ssk+&&/span& &;
//显UA开始
function ua(e) {
var r = new A
var outputer = '';
if (r = e.match(/MSIE\s([^\s|;]+)/gi)) {
outputer = '&span class=&ua_ie&&Internet Explorer' + '|' + r[0]/*.replace('MSIE', '').split('.')[0]*/
} else if (r = e.match(/FireFox\/([^\s]+)/ig)) {
var r1 = r[0].split(&/&);
outputer = '&span class=&ua_firefox&&Mozilla FireFox' + '|' + r1[1]
} else if (r = e.match(/Maxthon([\d]*)\/([^\s]+)/ig)) {
var r1 = r[0].split(&/&);
outputer = '&span class=&ua_maxthon&&Maxthon'
} else if (r = e.match(/UBrowser([\d]*)\/([^\s]+)/ig)) {
var r1 = r[0].split(&/&);
outputer = '&span class=&ua_ucweb&&UCBrowser' + '|' + r1[1]
} else if (r = e.match(/MetaSr/ig)) {
outputer = '&span class=&ua_sogou&&搜狗浏览器'
} else if (r = e.match(/2345Explorer/ig)) {
outputer = '&span class=&ua_2345explorer&&2345王牌浏览器'
} else if (r = e.match(/2345chrome/ig)) {
outputer = '&span class=&ua_2345chrome&&2345加速浏览器'
} else if (r = e.match(/LBBROWSER/ig)) {
outputer = '&span class=&ua_lbbrowser&&猎豹安全浏览器'
} else if (r = e.match(/MicroMessenger\/([^\s]+)/ig)) {
var r1 = r[0].split(&/&);
outputer = '&span class=&ua_qq&&微信' + '|' + r1[1]/*.split('/')[0]*/
} else if (r = e.match(/QQBrowser\/([^\s]+)/ig)) {
var r1 = r[0].split(&/&);
outputer = '&span class=&ua_qq&&QQ浏览器' + '|' + r1[1]/*.split('/')[0]*/
} else if (r = e.match(/QQ\/([^\s]+)/ig)) {
var r1 = r[0].split(&/&);
outputer = '&span class=&ua_qq&&QQ浏览器' + '|' + r1[1]/*.split('/')[0]*/
} else if (r = e.match(/MiuiBrowser\/([^\s]+)/ig)) {
var r1 = r[0].split(&/&);
outputer = '&span class=&ua_mi&&Miui浏览器' + '|' + r1[1]/*.split('/')[0]*/
} else if (r = e.match(/Chrome([\d]*)\/([^\s]+)/ig)) {
var r1 = r[0].split(&/&);
outputer = '&span class=&ua_chrome&&Chrome' + '|' + r1[1]/*.split('.')[0]*/
} else if (r = e.match(/safari\/([^\s]+)/ig)) {
var r1 = r[0].split(&/&);
outputer = '&span class=&ua_apple&&Apple Safari' + '|' + r1[1]
} else if (r = e.match(/Opera[\s|\/]([^\s]+)/ig)) {
var r1 = r[0].split(&/&);
outputer = '&span class=&ua_opera&&Opera' + '|' + r[1]
} else if (r = e.match(/Trident\/7.0/gi)) {
outputer = '&span class=&ua_ie&&Internet Explorer 11'
outputer = '&span class=&ua_other&&其它浏览器'
return outputer+&&/span& &;
function os(e) {
var os = '';
if (e.match(/win/ig)) {
if (e.match(/nt 5.1/ig)) {
os = '&span class=&os_xp&&Windows XP'
} else if (e.match(/nt 6.1/ig)) {
os = '&span class=&os_7&&Windows 7'
} else if (e.match(/nt 6.2/ig)) {
os = '&span class=&os_8&&Windows 8'
} else if (e.match(/nt 6.3/ig)) {
os = '&span class=&os_8_1&&Windows 8.1'
} else if (e.match(/nt 10.0/ig)) {
os = '&span class=&os_8_1&&Windows 10'
} else if (e.match(/nt 6.0/ig)) {
os = '&span class=&os_vista&&Windows Vista'
} else if (e.match(/nt 5/ig)) {
os = '&span class=&os_2000&&Windows ;
os = '&span class=&os_windows&&Windows'
} else if (e.match(/android/ig)) {
os = '&span class=&os_android&&Android'
} else if (e.match(/ubuntu/ig)) {
os = '&span class=&os_ubuntu&&Ubuntu'
} else if (e.match(/linux/ig)) {
os = '&span class=&os_linux&&Linux'
} else if (e.match(/mac/ig)) {
os = '&span class=&os_mac&&Mac OS X'
} else if (e.match(/unix/ig)) {
os = '&span class=&os_unix&&Unix'
} else if (e.match(/symbian/ig)) {
os = '&span class=&os_nokia&&Nokia SymbianOS'
os = '&span class=&os_other&&其它操作系统'
return os+&&/span&& ;
//显UA结束
添加完以上代码后,在编辑器中搜索
data-qqt-account=&'+s+'&&'+p(n.name)+&&)+&&
data-qqt-account=&'+s+'&&'+p(n.name)+&&) +&&span class=&\&ua\&&&& + sskadmin(e.author) + &&/span&&span class=&\&ua\&&&& + ua(e.agent) +&&/span&&span class=&\&ua\&&&&+ os(e.agent) + &&/span&& +&&
(如果搜索不到的话就减小点搜索范围,如:data-qqt-account=)
tips:代码中【】部分修改后记得删除。
多说id获取方法:
登录/settings/
点击你的昵称,
网址最后的那段数字就是你的多说id了。
博主显示文字部分可以任意修改。
以上代码来自 搜索客 的博客
我自己对博主标示的代码做了些修改,因为感觉用原版的大大的印章实在不雅
改成文字版的低调又和谐
以上为embed.js的修改步骤。
接着我们需要修改一下css在输出的文字后面加个背景色,请将以下代码添加进多说自定义css中。
/*多说UA开始*/
margin: 0 1px!
color:#FFFFFF!
/*text-transform: Capitalize!
float: right!
line-height: 18px!*/
.ua_other.os_other{
background-color: #ccc!
border: 1px solid #BBB!
border-radius: 4
background-color: #428bca!
border-color: #357ebd!
border-radius: 4
padding: 0 5px!
.ua_firefox{
background-color: #f0ad4e!
border-color: #eea236!
border-radius: 4
padding: 0 5px!
.ua_maxthon{
background-color: #7373B9!
border-color: #7373B9!
border-radius: 4
padding: 0 5px!
.ua_ucweb{
background-color: #FF740F!
border-color: #d43f3a!
border-radius: 4
padding: 0 5px!
.ua_sogou{
background-color: #78ACE9!
border-color: #4cae4c!
border-radius: 4
padding: 0 5px!
.ua_2345explorer{
background-color: #2478B8!
border-color: #4cae4c!
border-radius: 4
padding: 0 5px!
.ua_2345chrome{
background-color: #F9D024!
border-color: #4cae4c!
border-radius: 4
padding: 0 5px!
background-color: #FF4A00!
border-color: #4cae4c!
border-radius: 4
padding: 0 5px!
.ua_lbbrowser{
background-color: #FC9D2E!
border-color: #4cae4c!
border-radius: 4
padding: 0 5px!
.ua_chrome{
background-color: #EE6252!
border-color: #4cae4c!
border-radius: 4
padding: 0 5px!
background-color: #3D88A8!
border-color: #4cae4c!
border-radius: 4
padding: 0 5px!
.ua_apple{
background-color: #E95620!
border-color: #4cae4c!
border-radius: 4
padding: 0 5px!
.ua_opera{
background-color: #d9534f!
border-color: #d43f3a!
border-radius: 4
padding: 0 5px!
.os_vista,.os_2000,.os_windows,.os_xp,.os_7,.os_8,.os_8_1 {
background-color: #39b3d7!
border-color: #46b8da!
border-radius: 4
padding: 0 5px!
.os_android {
background-color: #98C13D!
border-color: #01B171!
border-radius: 4
padding: 0 5px!
.os_ubuntu{
background-color: #DD4814!
border-color: #01B171!
border-radius: 4
padding: 0 5px!
.os_linux {
background-color: #3A3A3A!
border-color: #1F1F1F!
border-radius: 4
padding: 0 5px!
background-color: #666666!
border-color: #1F1F1F!
border-radius: 4
padding: 0 5px!
background-color: #006600!
border-color: #1F1F1F!
border-radius: 4
padding: 0 5px!
.os_nokia{
background-color: #014485!
border-color: #1F1F1F!
border-radius: 4
padding: 0 5px!
.sskadmin{
background-color: #00a67c!
border-color: #01B171!
border-radius: 4
padding: 0 5px!
/*多说UA结束*/
至此,在多说评论框中添加ua显示与博主标示步骤就全部做完了,感谢大家的阅读。
最终效果见本站评论区
&&萝莉社,版权所有丨如未注明,均为原创丨本网站采用协议进行授权,转载请注明转自:
加载中……查看更多热门标签 首页 & 随记 & 程序相关 &
这段时间做自己的小博客,评论这块儿我选用了多说插件,既美观又方便不少,但是后来我却发现一个问题,我想在不使用多说提供的插件,本地调用最近评论的用户的时候却出现了一个问题,用户头像没办法加载,对于少数在多说里面更改过用户头像的用户可能有办法可以拿到图像,但是大部分人就是直接QQ等第三方登录,这部分用户的头像获取就成了问题。那么我该怎么解决呢?带着疑问我在百度上各种搜索,发现也有人提过同样的问题,但是没有任何有价值的回答。官方似乎也没有提供类似的方法可以让我们轻松的从wordpress本地获取到多说的用户头像。看着通篇一样的default头像,我实在没办法忍受。到底该怎么办呢?我开始研究多说官方提供的插件,发现在调用最近访客的时候请求了这样一个地址:http://***./api/sites/listVisitors.json?show_time=0&avatar_size=50&num_items=8&require=site%2Cvisitor%2Cnonce%2Clang&site_ims=&referer=***%2F&style_patch=wordpress%2F&v=16.3.18&jwt=***进一步研究发现,这个地址没有做验证,而且我只需要传入num_items就可以请求制定个数的访客(http://***./api/sites/listVisitors.json?num_items=xx),到这儿似乎看到点希望了。于是我新建了一个数据表wp_commentuser用来记录在站点评论的所有用户,表中有两个字段url(用户网址),(avatar_url)用户头像头像地址。我们知道多说会定期将评论同步会本地,那么我们就可以通过wp_comments拿到所有在网站浏览过的用户和其网址(作为标示),我们从wp_comments表中取得所有不重复的用户的个数,这个个数就是我们在请求http://***./api/sites/listVisitors.json?num_items=xx需要传入的items的值,接下来的工作就简单了,就是从接口拿到的访客的信息,以url为标示将其插入或者更新到wp_commentuser中,然后就是在需要调用用户头像的地方查询wp_commentuser这个表拿avatar_url就好了。最后我们把以上步骤下载一个方法里面,然后将其挂载到wp_ajax_duoshuo_sync_log(多说评论同步会本地的钩子函数)这个钩子上,这样左右一个好处就是如果是用户在网站评论了多说评论同步会本地的时候存在wordpress本地的用户头像也会同时更新。 以下是我写的一个比较粗陋的代码:
//同步多说头像
function sync_duoshuo_commentUser(){
$sql = &select distinct comment_author_url from $wpdb-&comments&;
$res = $wpdb-&get_results($sql);
$count = count($res);
if($count){
$url = &/api/sites/listVisitors.json?num_items=&.$
$json = json_decode(file_get_contents($url));
foreach($json-&response as $user){
$url = $user-&
if($url==&&)
$sql = &select id from wp_commentuser where url='&.$url.&'&;
$res = $wpdb-&get_row($sql);
if($res&=0){ $wpdb-&insert('wp_commentuser',array('url'=&$url,'avatar_url'=&$user-&avatar_url));
add_action('wp_ajax_duoshuo_sync_log', 'sync_duoshuo_commentUser');
add_action('duoshuo_sync_log_cron', 'sync_duoshuo_commentUser');
虽然上述做法基本满足了需求,但是其中还是有一些问题的,比如说我们从那个接口获取的数据能够作为标示和本地wordpress数据表能建立上联系的似乎只有url字段,如果url为空,那么就没有办法来标示了,对于这部分用户的头像只能够显示默认头像。 本文地址:/duoshuo-avatar.html 版权声明:本文为原创文章,版权归&Dean&所有,欢迎分享本文,转载请保留出处!
相关文章 会员视频免费看工具 WordPress本地调用多说用户头像
最新文章 解决canvas中toDataUrl图片跨域问题 JS中的A*寻路算法 苹果菜单放大效果 QQ空间长图滚动效果 mysql导入导出sql文件文章归档<a
href='/17年八月<a
href='/17年六月<a
href='/17年四月<a
href='/17年三月<a
href='/16年十二月<a
href='/16年十一月<a
href='/16年十月<a
href='/16年八月<a
href='/16年七月<a
href='/16年六月<a
href='/16年五月<a
href='/16年四月分类目录学习笔记 (76)生活杂谈 (3)程序相关 (2)随记 (2)}

我要回帖

更多关于 微博可以看最近访客吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信