不让多说覆盖wordpress所有的评论
多说是一款非常棒的插件,他的评论样式和社会化分享功能非常的好,所以非常多的网站也在使用多说。
最近我们在对官网进行开发时,想要利用wordpress原生的评论机制,建立一个小小的类似于贴吧bss,由于是bbs,所以功能和样式方便就不想用多说评论覆盖了,而是自己开发一个好看的类似于bbs的回帖样式。
但是,多说的机制是只要调用wordpress评论模块,使用到 <?php comments_template(); ?> 那么多说就会立即进行覆盖,由于多说没有提供自定义的端口,让用户自由放置,所以要实现一部分文章不使用多说还是有点麻烦。
我们在联系了多说的客服之后发现,其实多说还有一个关闭当前文章多说评论的功能,可能这个功能并容易被找到,我们也是通过客服才知道有这个功能,这个选项需要你再文章编辑页面点击“显示选项” –勾选“讨论”
在讨论模块中可以看到一个单选按钮,选择关闭多说评论:
选择了这个选项,就不会被多说的插件所覆盖了。
但是如果手动去选择这个选项那么无疑是会把人给累死的,所以我们如何去做到自动关闭呢?
首先我们可以了解下多说的这个关闭评论是如何运行的:
多说的这个关闭评论的选项代码在多说插件中的文件 wordpress.php中1258行中 commentStatusMetaBoxOptions 这个函数中
原理是利用wordpress的自定义栏目(post_meta) ,多说这个选项如果选择则会添加一个自定义栏目”duoshuo_status“,并且输出disabled,通过自定义栏目”duoshuo_status“是否有输出”disabled“ 来判断是否关闭。
看到这里,有基础的朋友已经知道如何去自动关闭多说评论了吧? 答案非常简单,使用wordpress添加自定义栏目功能 add_post_meta函数即可。
add_post_meta 这个函数我们稍加解释就知道如何去用了
这个函数有几个比较重要的参数
add_post_meta( “文章的ID” , ”自定义栏目的名称“ , ”默认的值“)
现在如果你想要关闭某个文章的多说评论 即可这样
add_post_meta( "文章的ID" , 'duoshuo_status', 'disabled');
这样,你只需要判断文章的id,即可使用这段代码自动输出一个自定义栏目了~
我们所使用的是wordpress插入文章的函数 wp_insert_post
如果你也是使用这个函数 就可以在插入文章函数后面加上
$myID = wp_insert_post( $whatever );
add_post_meta($myID, 'duoshuo_status', 'disabled');
这样插入文章函数执行的时候,会自动添加进自定义栏目的~ 是不是很方便呢?
其他的方式如某个分类的文章插入这个自定义栏目我们还没有试过,应该也是非常简单的一个排除判断的id过程,所以如果有兴趣,你也可以试一下哦!
我是个人做网站的业余爱好者,偶然进入到这个网站,感觉非常的好,主题什么的都很不错,文章很认真,“禁止”是一种态度,一种严谨的态度,非常喜欢这个网站