Skip to:
Content
Pages
Categories
Search
Top
Bottom

Auto Remove Forum Post (bbpress)


  • edgarpoe
    Participant

    @edgarpoe

    Hi, I’m looking for any solution with regards to removing of forum posts to expire after 60 days?

    I tried applying the solution found in this thread

    expired topics


    But this code is untested, any insights?

    Any help would be appreciated!

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

  • Robin W
    Moderator

    @robin-w

    did the code work?


    Robin W
    Moderator

    @robin-w

    I found this code in my files, try this

    /*
    Plugin Name: BBPress Close Old Posts
    Description: Close BBPress 2.0+ posts that haven't been updated in X days. 
    Author: Raygun
    Version: 0.1
    Author URI: http://madebyraygun.com
    
    Originally found here: https://wordpress.org/support/topic/plugin-bbpress-new-topic-notifications-new-reply-notications-too?replies=13
    
    This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
    You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
    */ 
    
    register_activation_hook(__FILE__, 'bbpress_topic_scheduler');
    
    add_action('bbpress_daily_event', 'bbpress_close_old_topics');
    
    function bbpress_topic_scheduler() {
     wp_schedule_event(time(), 'daily', 'bbpress_daily_event');
    }
    
    function bbpress_close_old_topics() {
    	// Auto close old topics
    	$topics_query = array(
    		'author' => 0,
    		'show_stickies' => false,
    		'parent_forum' => 'any',
    		'post_status' => 'publish',
    		'posts_per_page' => -1
    	);
    	if ( bbp_has_topics( $topics_query ) )
    		while( bbp_topics() ) {
    			bbp_the_topic();
    			$topic_id = bbp_get_topic_id();
    			$last_active = strtotime( get_post_meta( $topic_id, '_bbp_last_active_time', true ) );
    			if ($last_active < strtotime( '-10 days') )
    				bbp_close_topic( $topic_id );
    		}
    }
    ?>

    change the -10 days to whatever you want

    Basically just create a file called say ‘close.php’ and put this code in it. Create a directory in your site

    wp-content/plugins/close

    and put the file in there

    then go into

    dashboard>plugins>installed plugins and activate it

    I haven’t tested this.


    edgarpoe
    Participant

    @edgarpoe

    Tried applying the code and give me warning after activating the plugin

    /* Plugin Name: BBPress Close Old Posts Description: Close BBPress 2.0+ posts that haven’t been updated in X days. Author: Raygun Version: 0.1 Author URI: http://madebyraygun.com Originally found here: https://wordpress.org/support/topic/plugin-bbpress-new-topic-notifications-new-reply-notications-too?replies=13 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ register_activation_hook(__FILE__, ‘bbpress_topic_scheduler’); add_action(‘bbpress_daily_event’, ‘bbpress_close_old_topics’); function bbpress_topic_scheduler() { wp_schedule_event(time(), ‘daily’, ‘bbpress_daily_event’); } function bbpress_close_old_topics() { // Auto close old topics $topics_query = array( ‘author’ => 0, ‘show_stickies’ => false, ‘parent_forum’ => ‘any’, ‘post_status’ => ‘publish’, ‘posts_per_page’ => -1 ); if ( bbp_has_topics( $topics_query ) ) while( bbp_topics() ) { bbp_the_topic(); $topic_id = bbp_get_topic_id(); $last_active = strtotime( get_post_meta( $topic_id, ‘_bbp_last_active_time’, true ) ); if ($last_active < strtotime( ‘-60 days’) bbp_close_topic( $topic_id ); } } ?>


    denrocs
    Participant

    @denrocs

    Not tested this yet (I know this is nearly 3 years old – looking for something I’m currently working on) but I noticed that the code doesn’t have an opening PHP tag, just a closing one.
    I added the opening tag, installed as shown above, and not had this above error.

    Again, not tested but will confirm either way once I have set up a test post 🙂

Viewing 4 replies - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.
Skip to toolbar