/** * Resets a specific forum's data. * * @since 1.0.0 * @access public * @param object|int $post * @return void */ function mb_reset_forum_data($post) { /* Get the forum ID. */ $forum_id = is_object($post) ? mb_get_forum_id(get_post($post)->ID) : mb_get_forum_id($post); /* Reset subforum count. */ mb_reset_forum_subforum_count($forum_id); /* Reset forum topic count. */ mb_reset_forum_topic_count($forum_id); /* Reset forum reply count. */ mb_reset_forum_reply_count($forum_id); /* Reset forum latest. */ mb_reset_forum_latest($forum_id); }
function mb_topic_post_updated($post_id, $post_after, $post_before) { /* Bail if this is not the topic post type. */ if (mb_get_topic_post_type() !== $post_after->post_type) { return; } /* If the topic parent (forum) has changed. */ if ($post_after->post_parent !== $post_before->post_parent) { /* Reset forum topic count. */ mb_reset_forum_topic_count($post_after->post_parent); mb_reset_forum_topic_count($post_before->post_parent); /* Reset forum reply count. */ mb_reset_forum_reply_count($post_after->post_parent); mb_reset_forum_reply_count($post_before->post_parent); /* Reset forum latest data. */ mb_reset_forum_latest($post_after->post_parent); mb_reset_forum_latest($post_before->post_parent); } }
function mb_get_forum_topic_count($forum_id = 0) { $forum_id = mb_get_forum_id($forum_id); $count = get_post_meta($forum_id, mb_get_forum_topic_count_meta_key(), true); if ('' === $count) { $count = mb_reset_forum_topic_count($forum_id); } return absint($count); }