bbp_unspam_topic( int $topic_id )
Unspams a topic
Description
Parameters
- $topic_id
-
(Required) Topic id
Return
(mixed) False or WP_Error on failure, topic id on success
Source
File: bp-forums/topics/functions.php
function bbp_unspam_topic( $topic_id = 0 ) {
// Get the topic
$topic = bbp_get_topic( $topic_id );
if ( empty( $topic ) )
return $topic;
// Bail if already not spam
if ( bbp_get_spam_status_id() !== $topic->post_status )
return false;
// Execute pre unspam code
do_action( 'bbp_unspam_topic', $topic_id );
/** Untrash Replies *******************************************************/
// Get the replies that were not previously trashed
$pre_spammed_replies = get_post_meta( $topic_id, '_bbp_pre_spammed_replies', true );
// There are replies to untrash
if ( !empty( $pre_spammed_replies ) ) {
// Maybe reverse the trashed replies array
if ( is_array( $pre_spammed_replies ) )
$pre_spammed_replies = array_reverse( $pre_spammed_replies );
// Loop through replies
foreach ( (array) $pre_spammed_replies as $reply ) {
wp_untrash_post( $reply );
}
}
/** Topic Tags ************************************************************/
// Get pre-spam topic tags
$terms = get_post_meta( $topic_id, '_bbp_spam_topic_tags', true );
// Topic had tags before it was spammed
if ( !empty( $terms ) ) {
// Set the tax_input of the topic
$topic->tax_input = array( bbp_get_topic_tag_tax_id() => $terms );
// Delete pre-spam topic tag meta
delete_post_meta( $topic_id, '_bbp_spam_topic_tags' );
}
/** Topic Status **********************************************************/
// Get pre spam status
$topic_status = get_post_meta( $topic_id, '_bbp_spam_meta_status', true );
// If no previous status, default to publish
if ( empty( $topic_status ) ) {
$topic_status = bbp_get_public_status_id();
}
// Set post status to pre spam
$topic->post_status = $topic_status;
// Delete pre spam meta
delete_post_meta( $topic_id, '_bbp_spam_meta_status' );
// No revisions
remove_action( 'pre_post_update', 'wp_save_post_revision' );
// Update the topic
$topic_id = wp_update_post( $topic );
// Execute post unspam code
do_action( 'bbp_unspammed_topic', $topic_id );
// Return topic_id
return $topic_id;
}
Changelog
| Version | Description |
|---|---|
| bbPress (r2740) | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.