Hi, how do I restrict user to first create an account on my blog and then post/comment ?
In the Discussion Settings
just check the Users must be registered and logged in to comment
checkbox.
If you want to allow anybody to register, make also sure that under General Settings
the checkbox Anyone can register
in the Membership
line is checked.
There is also a Plugin that allow user to use OpenID to login to your blog: http://wordpress.org/extend/plugins/openid/
On my Wordpress Blogs, I make sure that the following options are set:
Under Settings
/ Discussions
set the following options:
Check
Users must be registered and logged in
underOther comment settings
Check
Anyone posts a comment
andA comment is held for moderation
underE-mail me whenever
Check
Comment author must have a previously approved comment
underBefore a comment appears
This way only registered users who have previously commented under your moderation will have the rights to comment freely.
I also install a plugin called BanHammer
(http://wordpress.org/extend/plugins/ban-hammer) which allows you to check registered users against a known database of spammers, and also allows you to specify your own domains or email addresses to stop spammers from registering (it picks up the list from Wordpress' Comment Blacklist
which is on the Discussion Settings
Page.
Also, don't forget to Activate Akismet
which will hopefully trap some (if not all) of the comment spam.