• There is a way to give your users the capabilities to submit posts, which you can moderate before they appear on the front of your site.

    For WP 1.5 there is a plugin called “Post Moderation”. But with WP 2.0 this plugin does not work. And as long that it doesn’t… Here is an alternative.

    1. You need the plugin “Limit Categories”.
    Find it here: https://redalt.com/wiki/Limit+Categories (this one is for WP2.0)

    2. When people sign up for your blog, you want to set the default role in the admin options to “Author”.

    3. Create a category “Pending” (or however you want to call it). Than, in the options of the “Limit Cats” plugin set the permissions (and default) of “Authors” to allow posts in the pending category only.

    4. To exclude the pending category from your blog, do this:

    In the main index template use one of these methods: (Put the code before the loop.)
    <?php query_posts(‘cat=1’); ?> To show only the category that is your blog. In this case this would be category with ID “1”. The subcategories still show up too.
    <?php query_posts(‘cat=-2’); ?> To exclude category “2” (probably your pending category) from the loop.

    In the sidebar and the archives you can exclude a category with this function: wp_list_cats(‘exclude=2’).

    5. Now, if a user wants to submit a post. All he or she has to do is create a post and publish it. The posts will end up in the pending category and will not show up on your blog yet. You will have to change the category of the post (that is the moderating part) in order to allow it to show up on the blog.

    6. But, be careful now. The authors can still edit their own posts. But there is a way to prevent them from doing this. Well… not completely, but almost. In the admin you can delete the link “manage” from the menu. Go to the directory “wp-admin” and find the file “menu.php”. Change the line where it says:
    $menu[10] = array(__(‘Manage’), ‘edit_posts’, ‘edit.php’);
    To this:
    $menu[10] = array(__(‘Manage’), ‘edit_pages’, ‘edit.php’);

    Also in your themes’ templates delete the “Edit This” link (edit_post_link) everywhere (archive, main index, single post).

    This is not, I repeat, NOT full proof. If the user knows the url and the ID of the post (which is still printed in the HTML code, even if you would set permalinks to date and name based), they can still edit their own posts by simply surfing to the url. For instance like this:
    https://www.myblog.com/wp-admin/post.php?action=edit&post=1
    I haven’t found a solution for this… If you have a way to prevent them from editing their posts, please let me know.

    7. Optional:
    Install the plugin “Post Control” for easier access to the posts. Find it here: https://www.kenvillines.com/archives/000099.html

    Install the plugin “Dashboard Options” for disabling the feeds and more. Find it here: https://cjbehm.dyndns.org/wingingit/dashboard-options/

    If you have comments or other suggestions, please let me know. A plugin for this would be better of course, so if anyone wants to build one, be my guest. I’ll be very grateful.

Viewing 5 replies - 1 through 5 (of 5 total)
  • That’s a totally wrong and over-complicated way to do it.
    Install the Role Manager plugin and everything except #1 is obsolete.
    https://redalt.com/wiki/Role+Manager

    Thread Starter kiddomono

    (@kiddomono)

    Finally some decent help on this support site.
    Thanks, this plugin looks great! But first of all, my solution is not complicated at all, just a solution that isn’t the best way to do it, I know. ??

    The only thing I changed with the Role Manager plugin is that the Contributor can publish posts.
    But I still created a pending category, limited it with the Limit Cats plugin, and excluded it from the front. (I guess I still need to do that, right?)

    Like I said, I am very grateful. I was looking for a simple solution for this, but couldn’t find it. Really, you have to know what to look for, if you want to find the right plugin for your problem…

    Thread Starter kiddomono

    (@kiddomono)

    Btw, disabling the capability “Read” deletes the “Profile” button in the menu. And disabling the capability “Edit posts” deletes the “Write” and “Manage” button. (And also the rights to do use these functions apparently.)
    Is there a way to just delete the “Manage” button? Would be nice too, because contributors shouldn’t be able to see what others submitted until it is approved.

    The only thing I changed with the Role Manager plugin is that the Contributor can publish posts.
    But I still created a pending category, limited it with the Limit Cats plugin, and excluded it from the front. (I guess I still need to do that, right?)

    The whole idea of the plugin is to avoid this kind of “complication”.
    Why to publish if it has to be reviewed and approved? That’s nonsense. Let them make a post (=edit/write) but without the capability to publish -> it will be a draft waiting for an editor or admin to approve = publish.
    Isn’t it easier and less complicated?

    Thread Starter kiddomono

    (@kiddomono)

    Yes of course. But that way you never know when a draft is ready to get published. The way I see it is that a contributor can still make a draft for himself, make changes to it later, and than decides when the post is finished. And also, they can’t edit their posts later. So there is no other way to achieve that.

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Post Moderation for WP 2.0’ is closed to new replies.