在使用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程序环境:Typecho v1.1 (17.10.30)


本文标签:typecho代码PHP