Auto Remove Forum Post (bbpress)
-
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
But this code is untested, any insights?Any help would be appreciated!
-
did the code work?
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.
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 ); } } ?>
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 🙂
- You must be logged in to reply to this topic.