WordPress: Flag possibly outdated posts

I use the Nerd stuff category of this blog for IT and technology related posts. But the oldest posts date back more than 10 years, and technology changes fast.

So I decided to add a warning to messages older than 3 years in that category. To do so, I added this code snippet to the functions.php file in the theme folder:

<?php
add_filter('the_content', 'post_age');
function post_age($content) {
    if (is_category('nerd-stuff') || ((is_home() || is_single()) && in_category('nerd-stuff'))) {
        # Minimum post age to display the message.
        # 3 years seems reasonable for technology.
        $min_yrs = 3;
        $min_sec = $min_yrs * 365 * 24 * 60 * 60;

        # Post age in seconds.
        $post_sec = date('U') - get_post_time();

        if ($post_sec > $min_sec) {
            # Post age in years.
            $post_yrs = round($post_sec / 60 / 60 / 24 / 365);

            # Prepend the warning to the content.
            return "<div style='border:1px dashed #cc0000; padding:25px; margin-bottom:25px; text-align:center; font-weight:bold; color:#cc0000;'>Please keep in mind that this post is about $post_yrs years old.<br>Technology may have changed in the meantime.</div>" . $content;
        }

        # Post is not old enough for a warning.
        return $content;
    }

    # We are not on the category page, the home page, or a single post page.
    return $content;
}

For the category, I used the ‘slug’ in the code above, but I could also have taken the category name or the category ID.

And I didn’t actually add this code to the theme’s functions.php. I first created a child theme as described here, and then added the code to the child theme’s functions.php. This way, I don’t lose my code if and when the theme is updated.

For the result, you can just browse the Nerd stuff category.

REPUBLISHING TERMS

You may republish this article online or in print under our Creative Commons license. You may not edit or shorten the text, you must attribute the article to OhReally.nl and you must include the author’s name in your republication.

If you have any questions, please email rob@ohreally.nl

License

Creative Commons License AttributionCreative Commons Attribution
WordPress: Flag possibly outdated posts