虽然标题中用了多说,但我真正想搞明白的是如何在某些页面禁用友言,社会化评论很好,但如果能选择性的使用就更好了,看友言的代码似乎有禁用功能,但我试了三个WP在线站都没能让友言正常工作,只好拿多说试一试。

如何选择性的禁用多说

禁用插件的方法一般就是移除插件通过hook加入到WordPress中的功能,要用到的工具函数就是

remove_action() >>

remove_filter() >>

将下面这段代码放入functions.php,将会在post ID为1的文章页面禁用多说

add_action('template_redirect','disable_duoshuo');
function disable_duoshuo() { 
	if( is_single(1) ) {
		remove_filter('comments_template', array('Duoshuo','commentsTemplate'));
		remove_action('wp_print_scripts', array('Duoshuo', 'appendScripts'));
	}
}

你可以将

is_single(1)

换成

is_page_template('guestbook.php')

这样就是当WordPress调用模板guestbook.php时禁用多说,这样就可以给留言板一个个性化的展示了。

不过,禁用多说的页面,无法实现社交化评论,所发表的评论亦将无法被多说记录,只能在于WordPress的评论管理界面中查看。

关于友言

友言我用的很少,不得不说第一次安装后看那它的管理界面,还是很吸引人的,功能实用。可惜,我接连在三个WordPress网站安装都失败了,按理说启用插件就可以看到效果,但我启用了插件,配置了所有选项,甚至费力的绑定了新浪微博,文章下面的评论框就是不显示。无奈至极只好放弃安装。

多说和友言修改评论模板的方法是一样的,所以,实现某些页面禁用友言的方法也许也雷同,例如下面的代码

add_action('template_redirect','disable_youyan');
function disable_youyan() { 
	if( is_page_template('guestbook.php') ) {
		remove_filter('comments_template', 'uyan_comment');
	}
}

2012-7-15更新

友言经过一次升级以后,已经可以正常安装在WP 3.4上,经测试上述方法可以在指定页面禁用友言,不会影响其它页面。

多说又进步了

之前抱怨过多说有很多问题,今天安装后感觉比以前进步了很多

  • 可以自定义css,虽然能改的东西并不多,但绝对是一个好的方向
  • pingback和trackback,看代码多说对pings进行了处理,我想现在应该能正常显示pings了吧,虽然还没尝试
  • 审核规则可以设置为全部人工审核,总比默认审核通过的好,不然垃圾评论真的让人不淡定
  • 评论写回可以定时,不一定要实时写回数据库了,这样也不错

不过看到友言facebook和disqus的评论框样式,真的很眼馋,无奈就是装不上,看插件的更新日期是今年6月21号,支持的WordPress版本却是3.2.1,不明白,现在都3.4了,我是在3.4的wp上安装的,难道是不兼容?

 

9条留言

  1. 挺使用的方法,正在想办法如何在手机端网页禁止掉多说,启用博客自带的评论。

    1. 难道多说对移动客户端的支持还不好吗,很久很久没用过多说了。

      1. Nop, 多说的弹出登录提示框在手机上面显示太大了,还有一些js功能在微信浏览器里面都不能用。

        1. 其实我一直想给旧文章加上“此文章许久未更新,所述方法可能已失效”的说明,多说已经更新了很多版本,期间hooks函数肯定发生了很大变化,remove的action和filter要一起变的。
          通常remove_filter这种,即使去除的filter不存在也不会报错(即白屏),不知道你的是什么原因。

      2. 今天有空试了一下你的方法,加入那段代码整个网站就不显示了。

  2. 在多说1.0版本下好像不行,求最新方法。

    1. 抱歉,我很久不用这插件了,建议去水煮鱼博客blog.wpjam.com问问

评论功能已关闭