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.