Title: php &#8211; remove older posts
Last modified: March 15, 2021

---

# php – remove older posts

 *  [Elliots](https://wordpress.org/support/users/elliots/)
 * (@elliots)
 * [5 years ago](https://wordpress.org/support/topic/php-remove-older-posts/)
 * Hello everyone. Still somewhat new. I am creating a site with posts that have
   headlines and has news links back to the original source created by an aggregator
   from pre-determined words that I specify.
 * Here is my problem, the links/titles are generated, but stick around for quite
   some time. I am not live, but I found a number of posts that were still on the
   front page fron January.
 * I need to be able to have posts deleted/archived what ever after x days. Let’s
   say 2 days. If a post comes in on Monday, it is automatically deleted/archived
   on Wednesday, etc.
 * I have been pointed to WP Expirator plugin, which doesn’t seem to be updated 
   and have read mixed reviews. So was thinking could I do this in a cron job which
   I have no clue what to do? Next was looking at wp snippets and using php. I found
   this code and it seems to work, but I believe I have to delete/archive manually.
   Is there a way to make this delete/archive automatically. And am using this through
   the snippets plugin:
 *     ```
       $days = 2;
       $dir = dirname ( __FILE__ );
   
       $nofiles = 0;
   
           if ($handle = opendir($dir)) {
           while (( $file = readdir($handle)) !== false ) {
               if ( $file == '.' || $file == '..' || is_dir($dir.'/'.$file) ) {
                   continue;
               }
   
               if ((time() - filemtime($dir.'/'.$file)) > ($days *172800)) {
                   $nofiles++;
                   unlink($dir.'/'.$file);
               }
           }
           closedir($handle);
           echo "Total files deleted: $nofiles \n";
       }
       ```
   
 * I am new enough to know that I don’t know where I am going. Any suggestions would
   be greatly appreciated.
 * Thanks,
 * Elliot

Viewing 5 replies - 1 through 5 (of 5 total)

 *  [Joy](https://wordpress.org/support/users/joyously/)
 * (@joyously)
 * [5 years ago](https://wordpress.org/support/topic/php-remove-older-posts/#post-14186897)
 * Why do you want to delete?
    I know you said you were new, but surely you understand
   enough to know that content is kept in the database, not in files. And by default,
   the posts are shown in descending chronological order, so the newest stuff is
   first. That means there is no reason to delete, and it’s very annoying when people
   get a link but click to get a 404. What is the point of having a post for 2 days?
   Also, if all your content points off-site, the search engines will consider them
   duplicate content and not send you any traffic. And WP_cron only runs when there
   is a page request.
 *  Thread Starter [Elliots](https://wordpress.org/support/users/elliots/)
 * (@elliots)
 * [5 years ago](https://wordpress.org/support/topic/php-remove-older-posts/#post-14186935)
 * Thanks for the reply. Not everything on the page will point off-site. However,
   the part that does will link to news stories per keywords that I choose from 
   different media sources. Really don’t want a news story / link sitting around
   for weeks and months especially if someone were to click on it and it is extremely
   old. I am using a post grid and an aggregator. An example the aggregator over
   the past month has pulled over 2,000 stories, yet there are still links on the
   site that are from the beginning of February. They could be archived rather than
   deleted.
 *  [Alan Fuller](https://wordpress.org/support/users/alanfuller/)
 * (@alanfuller)
 * [5 years ago](https://wordpress.org/support/topic/php-remove-older-posts/#post-14186941)
 * The first question is where are you concerned about the display – is it just 
   the home / frontpage you want them gone from?
 * Is there any value ‘archiving them’?
 * Do you know if they are being created as standard ‘posts’ or a ‘custom post type’?
 *  Thread Starter [Elliots](https://wordpress.org/support/users/elliots/)
 * (@elliots)
 * [5 years ago](https://wordpress.org/support/topic/php-remove-older-posts/#post-14186993)
 * I am using a post grid plugin… Elementor Essentials I believe. Just the front
   page. Having old posts/links wouldn’t help me. I suppose there is a benefit archiving
   so that 404 doesn’t appear. WP Expirator plugin is supposed to do this, but it
   doesn’t seem to be manned or working properly and it hasn’t been updated. That
   is why I have been researching cron jobs or php. From some of the code I have
   seen out there it shouldn’t be that difficult. However, it is Greek to me thus
   far.
 * Thanks,
 * Elliot
 *  [Alan Fuller](https://wordpress.org/support/users/alanfuller/)
 * (@alanfuller)
 * [5 years ago](https://wordpress.org/support/topic/php-remove-older-posts/#post-14187009)
 * What you really want to do, in my opinion, is as [@joyously](https://wordpress.org/support/users/joyously/)
   says, restrict what is displayed.
 * However, as far as I understand Post Grid / Essential Addons is a paid for plugin
   and these forums are not for paid add on support.
 * You will have to ask the product provider or dig into the code and see if
    there
   are some pre query hooks or filters to modify the loop.
 * Or go back to plan A -and delete them by cron, you will need to look up
 * [https://developer.wordpress.org/plugins/cron/understanding-wp-cron-scheduling/](https://developer.wordpress.org/plugins/cron/understanding-wp-cron-scheduling/)
   
   [https://developer.wordpress.org/reference/classes/wp_query/](https://developer.wordpress.org/reference/classes/wp_query/)
   [https://developer.wordpress.org/reference/functions/wp_delete_post/](https://developer.wordpress.org/reference/functions/wp_delete_post/)
    -  This reply was modified 5 years ago by [Alan Fuller](https://wordpress.org/support/users/alanfuller/).

Viewing 5 replies - 1 through 5 (of 5 total)

The topic ‘php – remove older posts’ is closed to new replies.

 * In: [Developing with WordPress](https://wordpress.org/support/forum/wp-advanced/)
 * 5 replies
 * 3 participants
 * Last reply from: [Alan Fuller](https://wordpress.org/support/users/alanfuller/)
 * Last activity: [5 years ago](https://wordpress.org/support/topic/php-remove-older-posts/#post-14187009)
 * Status: not resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
