在使用Typecho程序写博客时会出现很多垃圾评论。后台查看,一般就会在“待审核”标签下显示。由于每页最多只能显示20条记录,挨页删除很是费力!借鉴“垃圾”标签下的“删除所有垃圾评论”按钮,自己做了个“删除所有待审核评论”按钮。
一、手动修改代码
1、打开var\Widget\Comments\Edit.php
文件,定位到233行位置,添加函数:
/**
* 删除所有待审核评论
*
* @access public
* @return string
*/
public function deleteWaitingComment()
{
$deleteQuery = $this->db->delete('table.comments')->where('status = ?', 'waiting');
if (!$this->request->__typecho_all_comments || !$this->user->pass('editor', true)) {
$deleteQuery->where('ownerId = ?', $this->user->uid);
}
if (isset($this->request->cid)) {
$deleteQuery->where('cid = ?', $this->request->cid);
}
$deleteRows = $this->db->query($deleteQuery);
/** 设置提示信息 */
$this->widget('Widget_Notice')->set($deleteRows > 0 ?
_t('所有待审核评论已经被删除') : _t('没有待审核评论被删除'),
$deleteRows > 0 ? 'success' : 'notice');
/** 返回原网页 */
$this->response->goBack();
}
2、然后定位到原文件的365行位置,添加:
$this->on($this->request->is('do=delete-waiting'))->deleteWaitingComment();
3、打开admin\manage-comments.php
文件,定位到62行位置,添加:
<?php if('waiting' == $request->get('status')): ?>
<button lang="<?php _e('你确认要删除所有待审核评论吗?'); ?>" class="btn btn-s btn-warn btn-operate" href="<?php $security->index('/action/comments-edit?do=delete-waiting'); ?>"><?php _e('删除所有待审核评论'); ?></button>
<?php endif; ?>
4、然后定位到原文件的204行位置,添加:
<?php if('waiting' == $request->get('status')): ?>
<button lang="<?php _e('你确认要删除所有待审核评论吗?'); ?>" class="btn btn-s btn-warn btn-operate" href="<?php $security->index('/action/comments-edit?do=delete-waiting'); ?>"><?php _e('删除所有待审核评论'); ?></button>
<?php endif; ?>
二、文件直接替换
蓝奏云:(21x6)替换位置:var\Widget\Comments\Edit.php、admin\manage-comments.php
三、效果展示
注:以上可适用于Typecho程序环境:Typecho v1.1 (17.10.30)