bbp_insert_topic( array $topic_data = array(), arrap $topic_meta = array() )
A wrapper for wp_insert_post() that also includes the necessary meta values for the topic to function properly.
Description
Parameters
- $topic_data
-
(Optional) Forum post data.
Default value: array()
- $topic_meta
-
(Optional) Forum meta data.
Default value: array()
Source
File: bp-forums/topics/functions.php
function bbp_insert_topic( $topic_data = array(), $topic_meta = array() ) { // Parse arguments against default values $topic_data = bbp_parse_args( $topic_data, array( 'post_parent' => 0, // forum ID 'post_status' => bbp_get_public_status_id(), 'post_type' => bbp_get_topic_post_type(), 'post_author' => bbp_get_current_user_id(), 'post_password' => '', 'post_content' => '', 'post_title' => '', 'comment_status' => 'closed', 'menu_order' => 0, ), 'insert_topic' ); // Insert topic $topic_id = wp_insert_post( $topic_data ); // Bail if no topic was added if ( empty( $topic_id ) ) return false; // Parse arguments against default values $topic_meta = bbp_parse_args( $topic_meta, array( 'author_ip' => bbp_current_author_ip(), 'forum_id' => 0, 'topic_id' => $topic_id, 'voice_count' => 1, 'reply_count' => 0, 'reply_count_hidden' => 0, 'last_reply_id' => 0, 'last_active_id' => $topic_id, 'last_active_time' => get_post_field( 'post_date', $topic_id, 'db' ), ), 'insert_topic_meta' ); // Insert topic meta foreach ( $topic_meta as $meta_key => $meta_value ) { update_post_meta( $topic_id, '_bbp_' . $meta_key, $meta_value ); } // Update the forum $forum_id = bbp_get_topic_forum_id( $topic_id ); if ( !empty( $forum_id ) ) { bbp_update_forum( array( 'forum_id' => $forum_id ) ); } // Return new topic ID return $topic_id; }
Changelog
Version | Description |
---|---|
bbPress (r3349) | 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.