Recent Topics

[2.4.1] How to delete multiple comments

Started by on Mar 26, 2008 – Contents updated: Mar 26, 2008

Mar 26, 2008 22:34    

I have several hundred trackbacks and comments from people wanting to advertise stuff. Deleting them individually is a pain.

Is there an easy way (e.g. by selecting multiple checkboxes at once) to delete them a hundred at a time ?

Is there any wayt to prevent people or bots from adding this garbage to my size limited SQL database ?

Thanks.

Mar 26, 2008 22:51

Got link?

Sounds like you need to take advantage of the built in antispam central system. Basically one click ... or maybe 2 or 3 clicks will get rid of all matching offensive spam bits. Like if they are pushing "blahblah.whatever.com/junk" you can use antispam to delete and ban and report ".whatever.com" with just a few clicks. Evermore anything matching won't get through.

Got link? It's a heck of a lot easier to answer this stuff with details if we see your blog is the thing.

Mar 26, 2008 23:12

Okay cool. v241 ought to be pretty good about locking out the nasties. So find one of the offensive comments or trackbacks by going to your posts/comments tab and selecting the comments subtab. It'll show you a bunch of your comments, and *I hope* your trackbacks. Scroll the list till you find with your eye and mind a nice keyword setup to ban/delete/report and click the ban symbol. If you find something like in the sample I wrote above but don't find one that has "just the good part" click the ban symbol and take advantage of the field at the bottom of the page you will be taken to, and edit the keyword it is finding matches to.

Don't edit out too much though. Like you should always have a properly punctuated keyword - a leading dot or // and a dot somewhere along the way. Anyway if you choose to edit to cast a broader net just click "Check and ban" on that page and you should be able to clear out gobs of stuff with the greatest of ease.

Hopefully it won't take too long to clean up your blog yah?

Then I suggest selecting an antispam weapon and deploying it. I use my turingtest plugin but it doesn't protect trackbacks. Others dig on the visual captcha plugin, which protects trackbacks. There is also the "basic antispam" plugin but I don't know what it does, having not played with it for very much or long. With your favorite antispam system in place you might find un-moderating comments to be quite reasonable.

Hey everybody! Check out eugeneg's blog!

(some people eh? :roll: )

Mar 26, 2008 23:52

Ahh that's great. Thanks EdB. It is REALLY satisfying deleting several hundred at once. I noticed the 'no entry' sign before but it never occurred to me that it could be a ban icon/link.

Is there any way of counting how many comments are left ? I think I have all the low fruit but I'd like to know the size of the problem remaining.

Mar 27, 2008 09:52

I've not tested the following, but go to your user profile and tell it something like "100" for the field that talks about how many results to return. It is kinda like posts-per-page for the back office in that it says how many results to return on any given page in the back office. I believe the default will be "20".

So anyway set it to like "100" or more as you see fit, then visit your Posts / comments -> comments subtab again and see where you're at.

The problem here is that as you leave good comments in place the bad stuff goes further down the list, meaning you might not see the bad stuff on your Posts / comments -> comments subtab given the "results to return" setting. So keep cranking it up until the cows come home and beg for mercy for your server. Heck start with 500 and see how that works out...

PS set it back to a reasonable number when you're done.

Oh and I'm going to move this to the antispam forum because it's an antispam topic.

Mar 28, 2008 22:37

Well junking a hundred at a time was good while it lasted, but then I got loads of single hits and life is too short for deleting them individually. So I went back to my roots and decided to target the MySQL database that houses the blog. I will post what I did here in case any one comes along later with the same problem. Note that this worked for me and enabled me to delete 1435 comments in one hit of a couple of seconds, but the following will need minor tweaks to suit the individual.

First, take a backup copy of the table you are about to empty:

CREATE TABLE `schema_name`.`backup_blog_comments` ( `comment_ID` int( 11 ) unsigned NOT NULL auto_increment ,
`comment_post_ID` int( 11 ) unsigned NOT NULL default '0',
`comment_type` enum( 'comment', 'linkback', 'trackback', 'pingback' ) NOT NULL default 'comment',
`comment_status` enum( 'published', 'deprecated', 'protected', 'private', 'draft', 'redirected' ) NOT NULL default 'published',
`comment_author_ID` int( 10 ) unsigned default NULL ,
`comment_author` varchar( 100 ) default NULL ,
`comment_author_email` varchar( 255 ) default NULL ,
`comment_author_url` varchar( 255 ) default NULL ,
`comment_author_IP` varchar( 23 ) NOT NULL default '',
`comment_date` datetime NOT NULL default '2000-01-01 00:00:00',
`comment_content` text NOT NULL ,
`comment_rating` tinyint( 1 ) default NULL ,
`comment_featured` tinyint( 1 ) NOT NULL default '0',
`comment_nofollow` tinyint( 1 ) NOT NULL default '1',
`comment_karma` int( 11 ) NOT NULL default '0',
`comment_spam_karma` tinyint( 4 ) default NULL ,
`comment_allow_msgform` tinyint( 4 ) NOT NULL default '0',
PRIMARY KEY ( `comment_ID` ) ,
KEY `comment_post_ID` ( `comment_post_ID` ) ,
KEY `comment_date` ( `comment_date` ) ,
KEY `comment_type` ( `comment_type` ) ) ENGINE = MyISAM DEFAULT CHARSET = latin1;

INSERT INTO `schema_name`.`backup_blog_comments` SELECT * FROM `schema_name`.`blog_comments`;

I wanted to retain comments that contain my name, so the following deletes all others:

DELETE from `schema_name`.`blog_comments` where `comment_content` NOT LIKE '%Eugene%';

Commit;


Form is loading...

Content Mangement System – This forum is powered by b2evolution CMS, a complete engine for your website.