Mark as Read is a plugin for WordPress that gives your users a way to keep track of the posts they have read, and those they have not.

The plugin lets your users mark posts as read / unread as they view them. Everything is performed with ajax for a seamless, smooth experience.


Posts can be marked as read manually or automatically (after a specified period of time) and can have their read status changed at any point.

Every post that is marked as read receives a “read count”, which is used in one of the provided widgets to display a list of your most popular posts.

Users can easily view posts they have not read and also view a report of their reading progress on your site, including the number of posts they’ve read, the number they haven’t read, the total number of posts on the site, and the percentage of the posts they have read.

The plugin can be completely setup in less than five minutes and includes a variety of options to customize it to perfectly suit your needs.

Included are a selection of widgets, short codes, automatic functions (configurable through the settings page), and template tags. The plugin can be used by every level of WordPress user, from absolute beginner to advanced developer.

Features

  • Mark posts as read
    • Optional setting to mark posts as read automatically after a time period
  • Mark posts as unread
  • View posts not yet read
  • View complete reading report of the number of posts you’ve read, those you have not read, the total posts on the site, and the percentage of posts that you have read
  • Optional alert messages for when posts are marked as read/unread
  • Four widgets included
    • Mark Post as Read/Unread Links
    • User’s Unread Posts
    • Most Read Posts
    • User Report
  • 3 Short codes included
    • User’s Unread Posts
    • Most Read (Popular) Posts
    • User’s Report
  • Settings page that provides excellent control and complete setup in less than 5 minutes

Note that this plugin is designed to fit perfectly within your WordPress theme, and so only minimal styling is provided. The widgets and all other functions of this plugin will perfectly inherit the styles of your theme.

Download Plugin
  1. Betsy

    Does it work with Post Types?

    Seems like its for only posts?

    • Pippin

      By default, just Posts, but it can be modified easily to work with other post types.

  2. blogjunkie

    Is this the plugin that enables the Bookmark This Post functionality on this site?

    • Pippin

      No, the bookmarks on this site are powered by my User Bookmarks plugin.

    • blogjunkie

      Great! You just scored another purchase for that plugin 🙂

    • Pippin

      Thank you 🙂

  3. dan

    Quick question. I bought and would like to be able to show on a page ALL of the posts that have not been read for a user. I see the shortcode but I can’t seem to get it to show more than 5. I read the read-me and it may be a tempate tag, but that’s a little foreign to me. Am I missing a quick fix? If needed, I can make a modification in some of the template code, just not sure what to add and where.

    • Pippin

      The short code accepts a parameter called “number”, just set it to a really high number, such as 999:

      [unread_posts number=999]
  4. Tan

    Is it possible to have this plugin work with the bbpress forums so you can view posts posts that haven’t been read?

    • Pippin

      No, but I’m probably going to write a separate plugin that does do that.

  5. Kenny

    @pippin, what if I hire you to make the bbPress plugin? Are you interested?

    • Pippin

      Possibly, it depends on your time frame. You can email me if you want to talk about it more.

  6. Tan

    Thanks Pippin, I may be in contact soon. It is something a lot of bbpress users are looking for. I’ll have a forum migrating to my site soon and they’re used to these sort of features (with phpbb).

  7. Pippin

    Sounds great.

  8. Dan

    Thanks Pippin for your earlier reply. One more question. Is it possible to mark posts/pages that should NOT be counted towards the Most Viewed by All Users?

  9. Dan

    One more question. If a user has a number of posts that are unread, how does your plugin determine which five to show?

    • Pippin

      It uses sequential ordering, so it’s based on the ID number of the post, but this can be pretty easily changed.

  10. Pippin

    I’m not quite sure I understand what you mean, can you elaborate?

  11. Eric Lodahl

    This doesn’t seem to work with the subscriber role. It displays unread articles, but doesn’t display the report on the profile page for a subscriber role, nor does it seem to mark articles as read after the subscriber role as viewed the post.
    Is this true?

    • Pippin

      Eric, no, this is not true. If you’re experiencing this, then it is most likely due to a conflict with another plugin on your site. Do you have a plugin that blocks access to the dashboard for non admin users?

  12. Eric Lodahl

    Thanks for the response.
    I am in fact, and have confirmed it is, a function i’ve got in the functions file to redirect non-admin types users. Is there a work around for this?

  13. Pippin

    Can you show me the function?

  14. elodahl

    function redirect_user_on_role() {
    global $current_user;
    get_currentuserinfo();
    if ($current_user->user_level < 10) {
    wp_redirect( home_url() );
    exit;
    }
    }
    add_action('admin_init','redirect_user_on_role');

    • Pippin

      Try using this version instead:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      
      function redirect_user_on_role() {
      	global $current_user;
      	get_currentuserinfo();
      	if ($current_user-&gt;user_level &lt; 10 &amp;&amp; !isset( $_POST[&#039;mark_post_as_unread&#039;] ) &amp;&amp; !isset( $_POST[&#039;mark_post_as_read&#039;] ) ) {
      		wp_redirect( home_url() );
      		exit;
      	}
      }
      add_action(&#039;admin_init&#039;,&#039;redirect_user_on_role&#039;);
  15. Tan

    Email sent 🙂

  16. Pippin

    I don’t see it, can you tell me the email address you used?

  17. Eric Lodahl

    Ah, i see what you did there.
    Unfortunately, it still doesn’t set posts as read, automatically or manually.

  18. Eric Lodahl

    it seems the usermeta table isn’t getting updated with anything, unless it’s an admin.

  19. Eric Lodahl

    solved!
    what is needed is && !defined(‘DOING_AJAX’)

  20. Pippin

    Ah! I should have thought of that the first time 🙂

  21. Tan

    My email is tanya @ netballscoop dot com

    If you still don’t see it could you please email me? Thanks 🙂

  22. Pippin

    Still don’t see it. I’ve just emailed you.

  23. Eike Adler

    Sorry for asking again, but I just need some little help with styling the output of your plugin. 🙂
    I would like to generate the list of unread posts with thumbnail and excerpt as well. (It should be the function mar_list_unread_posts, right?)
    For some reason I can’t get it to work or look good.

    Thanks for your support.
    Kind regards,
    Eike Adler
    Streidl

    • Pippin

      Sorry but thumbnails require custom modification of the plugin, which goes beyond the support I can provide.

  24. cbryant

    Hi Pippin,

    Is there an tutorial on your site somewhere (didn’t see one), or snippet you can provide to enable Mark As Read to work with Custom Post Types?

    Thank you.

  25. cbryant

    Hi Pippin,

    Got it working on CPTs. Took no effort at all. I was confused by a previous comment saying it only works with posts. I should’ve tried it before posting.

    But now I have another question:
    Is it possible to display the Mark As Read status for individual posts in other places, similar to how we’d display Custom Field values.

    For example, if I have a custom taxonomy page template showing post info (titles, excerpts, etc) and I want users to be able to also see – on that page – if they’ve marked a post as Read or not.

    Will keep experimenting – but if you can share any code or insights – thank you.

  26. Tyago Neres

    Hi Pippin

    I need to add the post id to each item on this list and post_ID and get_the_ID don’t seem to work here:

    <a href="ID); ?>”>ID); ?>

    Thanks

  27. Tyago Neres

    Hi Pippin,

    Can you help me set the unique post id to the permalink (or list) here?

    <a href="ID); ?>">ID); ?>

    Thanks

    • Pippin

      Can you repost your code to pastebin.com and then share the link? The comment stripped it out.

  28. Tyago Neres

    Hi guys,

    I bought the Mark as Read plugin a few days and just noticed there’s a bug that “adds” a post to the displayed read count. Installed the plugin in a fresh wp install and the bus is still there. No matter how many posts, it always show one more and one as “read. Like this, for example, the blog has 10 posts and when i activate the plugin this is the output:

    http://cl.ly/X8YH

    My post number:

    http://cl.ly/X7k5

    Can you help? I really need this to be fixed since I’m using your plugin for quite a big feature on my site.

    Thanks!

  29. Yoana

    Does this plugin support the “hide post” feature from a search. So for example, if I’m searching for posts, will it hide the ones I’ve already read?

    • Pippin

      No, sorry.

  30. Farting Santa

    Hi Pippin,

    Just purchased the plugin and its great, is there a simple way of extracted the read count into a variable so it can be used for calculations.

    I’m using $user_marked = mar_list_user_report($marked); which outputs the users read count however it’s in an array, and I’ll I want to output is the read posts count, I’ve tried echoing $read_posts but just can’t get my head around it.

    Any help or advise appreciated.

    Cheers

Comments are closed.