当前位置: 首页>>代码示例>>PHP>>正文


PHP bbp_update_forum_topic_count函数代码示例

本文整理汇总了PHP中bbp_update_forum_topic_count函数的典型用法代码示例。如果您正苦于以下问题:PHP bbp_update_forum_topic_count函数的具体用法?PHP bbp_update_forum_topic_count怎么用?PHP bbp_update_forum_topic_count使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了bbp_update_forum_topic_count函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: bbp_admin_repair_forum_topic_count

/**
 * Recount forum topics
 *
 * @since 2.0.0 bbPress (r2613)
 *
 * @uses wpdb::query() To run our recount sql queries
 * @uses is_wp_error() To check if the executed query returned {@link WP_Error}
 * @uses bbp_get_forum_post_type() To get the forum post type
 * @uses get_posts() To get the forums
 * @uses bbp_update_forum_topic_count() To update the forum topic count
 * @return array An array of the status code and the message
 */
function bbp_admin_repair_forum_topic_count()
{
    // Define variables
    $bbp_db = bbp_db();
    $statement = __('Counting the number of topics in each forum… %s', 'bbpress');
    $result = __('Failed!', 'bbpress');
    $sql_delete = "DELETE FROM {$bbp_db->postmeta} WHERE meta_key IN ( '_bbp_topic_count', '_bbp_total_topic_count', '_bbp_topic_count_hidden' );";
    if (is_wp_error($bbp_db->query($sql_delete))) {
        return array(1, sprintf($statement, $result));
    }
    $forums = get_posts(array('post_type' => bbp_get_forum_post_type(), 'numberposts' => -1));
    if (!empty($forums)) {
        foreach ($forums as $forum) {
            bbp_update_forum_topic_count($forum->ID);
            bbp_update_forum_topic_count_hidden($forum->ID);
        }
    } else {
        return array(2, sprintf($statement, $result));
    }
    return array(0, sprintf($statement, __('Complete!', 'bbpress')));
}
开发者ID:joeyblake,项目名称:bbpress,代码行数:33,代码来源:tools.php

示例2: bbp_update_forum

/**
 * Updates the counts of a forum.
 *
 * This calls a few internal functions that all run manual queries against the
 * database to get their results. As such, this function can be costly to run
 * but is necessary to keep everything accurate.
 *
 * @since bbPress (r2908)
 *
 * @param mixed $args Supports these arguments:
 *  - forum_id: Forum id
 *  - last_topic_id: Last topic id
 *  - last_reply_id: Last reply id
 *  - last_active_id: Last active post id
 *  - last_active_time: last active time
 * @uses bbp_update_forum_last_topic_id() To update the forum last topic id
 * @uses bbp_update_forum_last_reply_id() To update the forum last reply id
 * @uses bbp_update_forum_last_active_id() To update the last active post id
 * @uses get_post_field() To get the post date of the last active id
 * @uses bbp_update_forum_last_active_time()  To update the last active time
 * @uses bbp_update_forum_subforum_count() To update the subforum count
 * @uses bbp_update_forum_topic_count() To update the forum topic count
 * @uses bbp_update_forum_reply_count() To update the forum reply count
 * @uses bbp_update_forum_topic_count_hidden() To update the hidden topic count
 */
function bbp_update_forum($args = '')
{
    // Parse arguments against default values
    $r = bbp_parse_args($args, array('forum_id' => 0, 'post_parent' => 0, 'last_topic_id' => 0, 'last_reply_id' => 0, 'last_active_id' => 0, 'last_active_time' => 0, 'last_active_status' => bbp_get_public_status_id()), 'update_forum');
    // Last topic and reply ID's
    bbp_update_forum_last_topic_id($r['forum_id'], $r['last_topic_id']);
    bbp_update_forum_last_reply_id($r['forum_id'], $r['last_reply_id']);
    // Active dance
    $r['last_active_id'] = bbp_update_forum_last_active_id($r['forum_id'], $r['last_active_id']);
    // If no active time was passed, get it from the last_active_id
    if (empty($r['last_active_time'])) {
        $r['last_active_time'] = get_post_field('post_date', $r['last_active_id']);
    }
    if (bbp_get_public_status_id() === $r['last_active_status']) {
        bbp_update_forum_last_active_time($r['forum_id'], $r['last_active_time']);
    }
    // Counts
    bbp_update_forum_subforum_count($r['forum_id']);
    bbp_update_forum_reply_count($r['forum_id']);
    bbp_update_forum_topic_count($r['forum_id']);
    bbp_update_forum_topic_count_hidden($r['forum_id']);
    // Update the parent forum if one was passed
    if (!empty($r['post_parent']) && is_numeric($r['post_parent'])) {
        bbp_update_forum(array('forum_id' => $r['post_parent'], 'post_parent' => get_post_field('post_parent', $r['post_parent'])));
    }
}
开发者ID:jenia-buianov,项目名称:all_my_sites,代码行数:51,代码来源:functions.php

示例3: bbp_split_topic_count

/**
 * Fix counts on topic split
 *
 * When a topic is split, update the counts of source and destination topic
 * and their forums.
 *
 * @since bbPress (r2756)
 *
 * @param int $from_reply_id From reply id
 * @param int $source_topic_id Source topic id
 * @param int $destination_topic_id Destination topic id
 * @uses bbp_update_forum_topic_count() To update the forum topic counts
 * @uses bbp_update_forum_reply_count() To update the forum reply counts
 * @uses bbp_update_topic_reply_count() To update the topic reply counts
 * @uses bbp_update_topic_voice_count() To update the topic voice counts
 * @uses bbp_update_topic_reply_count_hidden() To update the topic hidden reply
 *                                              count
 * @uses do_action() Calls 'bbp_split_topic_count' with the from reply id,
 *                    source topic id & destination topic id
 */
function bbp_split_topic_count($from_reply_id, $source_topic_id, $destination_topic_id)
{
    // Forum Topic Counts
    bbp_update_forum_topic_count(bbp_get_topic_forum_id($destination_topic_id));
    // Forum Reply Counts
    bbp_update_forum_reply_count(bbp_get_topic_forum_id($destination_topic_id));
    // Topic Reply Counts
    bbp_update_topic_reply_count($source_topic_id);
    bbp_update_topic_reply_count($destination_topic_id);
    // Topic Hidden Reply Counts
    bbp_update_topic_reply_count_hidden($source_topic_id);
    bbp_update_topic_reply_count_hidden($destination_topic_id);
    // Topic Voice Counts
    bbp_update_topic_voice_count($source_topic_id);
    bbp_update_topic_voice_count($destination_topic_id);
    do_action('bbp_split_topic_count', $from_reply_id, $source_topic_id, $destination_topic_id);
}
开发者ID:jenia-buianov,项目名称:all_my_sites,代码行数:37,代码来源:functions.php

示例4: bbp_update_forum

/**
 * Updates the counts of a forum.
 *
 * This calls a few internal functions that all run manual queries against the
 * database to get their results. As such, this function can be costly to run
 * but is necessary to keep everything accurate.
 *
 * @since bbPress (r2908)
 *
 * @param mixed $args Supports these arguments:
 *  - forum_id: Forum id
 *  - last_topic_id: Last topic id
 *  - last_reply_id: Last reply id
 *  - last_active_id: Last active post id
 *  - last_active_time: last active time
 * @uses bbp_update_forum_last_topic_id() To update the forum last topic id
 * @uses bbp_update_forum_last_reply_id() To update the forum last reply id
 * @uses bbp_update_forum_last_active_id() To update the last active post id
 * @uses get_post_field() To get the post date of the last active id
 * @uses bbp_update_forum_last_active_time()  To update the last active time
 * @uses bbp_update_forum_subforum_count() To update the subforum count
 * @uses bbp_update_forum_topic_count() To update the forum topic count
 * @uses bbp_update_forum_reply_count() To update the forum reply count
 * @uses bbp_update_forum_topic_count_hidden() To update the hidden topic count
 */
function bbp_update_forum($args = '')
{
    $defaults = array('forum_id' => 0, 'post_parent' => 0, 'last_topic_id' => 0, 'last_reply_id' => 0, 'last_active_id' => 0, 'last_active_time' => 0, 'last_active_status' => bbp_get_public_status_id());
    $r = bbp_parse_args($args, $defaults, 'update_forum');
    extract($r);
    // Last topic and reply ID's
    bbp_update_forum_last_topic_id($forum_id, $last_topic_id);
    bbp_update_forum_last_reply_id($forum_id, $last_reply_id);
    // Active dance
    $last_active_id = bbp_update_forum_last_active_id($forum_id, $last_active_id);
    // If no active time was passed, get it from the last_active_id
    if (empty($last_active_time)) {
        $last_active_time = get_post_field('post_date', $last_active_id);
    }
    if (bbp_get_public_status_id() == $last_active_status) {
        bbp_update_forum_last_active_time($forum_id, $last_active_time);
    }
    // Counts
    bbp_update_forum_subforum_count($forum_id);
    bbp_update_forum_reply_count($forum_id);
    bbp_update_forum_topic_count($forum_id);
    bbp_update_forum_topic_count_hidden($forum_id);
    // Update the parent forum if one was passed
    if (!empty($post_parent) && is_numeric($post_parent)) {
        bbp_update_forum(array('forum_id' => $post_parent, 'post_parent' => get_post_field('post_parent', $post_parent)));
    }
}
开发者ID:vsalx,项目名称:rattieinfo,代码行数:52,代码来源:bbp-forum-functions.php

示例5: bbp_move_reply_count

/**
 * Fix counts on reply move
 *
 * When a reply is moved, update the counts of source and destination topic
 * and their forums.
 *
 * @since bbPress (r4521)
 *
 * @param int $move_reply_id Move reply id
 * @param int $source_topic_id Source topic id
 * @param int $destination_topic_id Destination topic id
 * @uses bbp_update_forum_topic_count() To update the forum topic counts
 * @uses bbp_update_forum_reply_count() To update the forum reply counts
 * @uses bbp_update_topic_reply_count() To update the topic reply counts
 * @uses bbp_update_topic_voice_count() To update the topic voice counts
 * @uses bbp_update_topic_reply_count_hidden() To update the topic hidden reply
 *                                              count
 * @uses do_action() Calls 'bbp_move_reply_count' with the move reply id,
 *                    source topic id & destination topic id
 */
function bbp_move_reply_count($move_reply_id, $source_topic_id, $destination_topic_id)
{
    // Forum topic counts
    bbp_update_forum_topic_count(bbp_get_topic_forum_id($destination_topic_id));
    // Forum reply counts
    bbp_update_forum_reply_count(bbp_get_topic_forum_id($destination_topic_id));
    // Topic reply counts
    bbp_update_topic_reply_count($source_topic_id);
    bbp_update_topic_reply_count($destination_topic_id);
    // Topic hidden reply counts
    bbp_update_topic_reply_count_hidden($source_topic_id);
    bbp_update_topic_reply_count_hidden($destination_topic_id);
    // Topic voice counts
    bbp_update_topic_voice_count($source_topic_id);
    bbp_update_topic_voice_count($destination_topic_id);
    do_action('bbp_move_reply_count', $move_reply_id, $source_topic_id, $destination_topic_id);
}
开发者ID:igniterealtime,项目名称:community-plugins,代码行数:37,代码来源:functions.php

示例6: test_bbp_admin_repair_forum_topic_count

 /**
  * @covers ::bbp_admin_repair_forum_topic_count
  */
 public function test_bbp_admin_repair_forum_topic_count()
 {
     $c = $this->factory->forum->create(array('forum_meta' => array('forum_type' => 'category', 'status' => 'open')));
     $f = $this->factory->forum->create(array('post_parent' => $c, 'forum_meta' => array('forum_id' => $c, 'forum_type' => 'forum', 'status' => 'open')));
     $t = $this->factory->topic->create(array('post_parent' => $f, 'topic_meta' => array('forum_id' => $f)));
     $count = bbp_get_forum_topic_count($f, true, true);
     $this->assertSame(1, $count);
     $t = $this->factory->topic->create_many(3, array('post_parent' => $f, 'topic_meta' => array('forum_id' => $f)));
     bbp_update_forum_topic_count($c);
     bbp_update_forum_topic_count($f);
     // Category topic count.
     $count = bbp_get_forum_topic_count($c, false, true);
     $this->assertSame(0, $count);
     // Category total topic count.
     $count = bbp_get_forum_topic_count($c, true, true);
     $this->assertSame(4, $count);
     // Category topic count hidden.
     $count = bbp_get_forum_topic_count_hidden($c, true);
     $this->assertSame(0, $count);
     // Forum topic count.
     $count = bbp_get_forum_topic_count($f, false, true);
     $this->assertSame(4, $count);
     // Forum total topic count.
     $count = bbp_get_forum_topic_count($f, true, true);
     $this->assertSame(4, $count);
     // Forum topic count hidden.
     $count = bbp_get_forum_topic_count_hidden($f, true);
     $this->assertSame(0, $count);
     bbp_spam_topic($t[0]);
     bbp_unapprove_topic($t[2]);
     // Category topic count.
     $count = bbp_get_forum_topic_count($c, false, true);
     $this->assertSame(0, $count);
     // Category total topic count.
     $count = bbp_get_forum_topic_count($c, true, true);
     $this->assertSame(2, $count);
     // Category topic count hidden.
     $count = bbp_get_forum_topic_count_hidden($c, true);
     $this->assertSame(0, $count);
     // Forum topic count.
     $count = bbp_get_forum_topic_count($f, false, true);
     $this->assertSame(2, $count);
     // Forum total topic count.
     $count = bbp_get_forum_topic_count($f, true, true);
     $this->assertSame(2, $count);
     // Forum topic count hidden.
     $count = bbp_get_forum_topic_count_hidden($f, true);
     $this->assertSame(2, $count);
     // Delete the _bbp_total_topic_count meta key.
     $this->assertTrue(delete_post_meta_by_key('_bbp_topic_count_hidden'));
     // Delete the _bbp_total_topic_count meta key.
     $this->assertTrue(delete_post_meta_by_key('_bbp_total_topic_count'));
     // Delete the  _bbp_topic_count meta key.
     $this->assertTrue(delete_post_meta_by_key('_bbp_topic_count'));
     // Category topic count.
     $count = bbp_get_forum_topic_count($c, false, true);
     $this->assertSame(0, $count);
     // Category total topic count.
     $count = bbp_get_forum_topic_count($c, true, true);
     $this->assertSame(0, $count);
     // Category topic count hidden.
     $count = bbp_get_forum_topic_count_hidden($c, true);
     $this->assertSame(0, $count);
     // Forum topic count.
     $count = bbp_get_forum_topic_count($f, false, true);
     $this->assertSame(0, $count);
     // Forum total topic count.
     $count = bbp_get_forum_topic_count($f, true, true);
     $this->assertSame(0, $count);
     // Forum topic count hidden.
     $count = bbp_get_forum_topic_count_hidden($f, true);
     $this->assertSame(0, $count);
     // Repair the forum topic count meta.
     bbp_admin_repair_forum_topic_count();
     // Category topic count.
     $count = bbp_get_forum_topic_count($c, false, true);
     $this->assertSame(0, $count);
     // Category total topic count.
     $count = bbp_get_forum_topic_count($c, true, true);
     $this->assertSame(2, $count);
     // Category topic count hidden.
     $count = bbp_get_forum_topic_count_hidden($c, true);
     $this->assertSame(0, $count);
     // Forum topic count.
     $count = bbp_get_forum_topic_count($f, false, true);
     $this->assertSame(2, $count);
     // Forum total topic count.
     $count = bbp_get_forum_topic_count($f, true, true);
     $this->assertSame(2, $count);
     // Forum topic count hidden.
     $count = bbp_get_forum_topic_count_hidden($f, true);
     $this->assertSame(2, $count);
 }
开发者ID:CompositeUK,项目名称:clone.bbPress,代码行数:96,代码来源:tools.php

示例7: test_bbp_get_forum_post_count

 /**
  * @covers ::bbp_forum_post_count
  * @covers ::bbp_get_forum_post_count
  */
 public function test_bbp_get_forum_post_count()
 {
     $c = $this->factory->forum->create(array('forum_meta' => array('forum_type' => 'category')));
     $f = $this->factory->forum->create(array('post_parent' => $c, 'forum_meta' => array('forum_id' => $c)));
     $t = $this->factory->topic->create(array('post_parent' => $f));
     $int_value = 3;
     // Topic + Replies.
     $result = 4;
     $formatted_result = bbp_number_format($result);
     $this->factory->reply->create_many($int_value, array('post_parent' => $t));
     bbp_update_forum_topic_count($c);
     bbp_update_forum_topic_count($f);
     bbp_update_forum_reply_count($c);
     bbp_update_forum_reply_count($f);
     // Forum output.
     $count = bbp_get_forum_post_count($f, true, false);
     $this->expectOutputString($formatted_result);
     bbp_forum_post_count($f);
     // Forum formatted string.
     $count = bbp_get_forum_post_count($f, true, false);
     $this->assertSame($formatted_result, $count);
     // Forum integer.
     $count = bbp_get_forum_post_count($f, true, true);
     $this->assertSame($result, $count);
     // Category post count.
     $count = bbp_get_forum_post_count($c, false, true);
     $this->assertSame(0, $count);
     // Category total post count.
     $count = bbp_get_forum_post_count($c, true, true);
     $this->assertSame($result, $count);
 }
开发者ID:CompositeUK,项目名称:clone.bbPress,代码行数:35,代码来源:counts.php

示例8: bbp_update_forum

/**
 * Updates the counts of a forum.
 *
 * This calls a few internal functions that all run manual queries against the
 * database to get their results. As such, this function can be costly to run
 * but is necessary to keep everything accurate.
 *
 * @since 2.0.0 bbPress (r2908)
 *
 * @param array $args Supports these arguments:
 *  - forum_id: Forum id
 *  - last_topic_id: Last topic id
 *  - last_reply_id: Last reply id
 *  - last_active_id: Last active post id
 *  - last_active_time: last active time
 * @uses bbp_update_forum_last_topic_id() To update the forum last topic id
 * @uses bbp_update_forum_last_reply_id() To update the forum last reply id
 * @uses bbp_update_forum_last_active_id() To update the last active post id
 * @uses get_post_field() To get the post date of the last active id
 * @uses bbp_update_forum_last_active_time()  To update the last active time
 * @uses bbp_update_forum_subforum_count() To update the subforum count
 * @uses bbp_update_forum_topic_count() To update the forum topic count
 * @uses bbp_update_forum_reply_count() To update the forum reply count
 * @uses bbp_update_forum_topic_count_hidden() To update the hidden topic count
 */
function bbp_update_forum($args = array())
{
    // Parse arguments against default values
    $r = bbp_parse_args($args, array('forum_id' => 0, 'post_parent' => 0, 'last_topic_id' => 0, 'last_reply_id' => 0, 'last_active_id' => 0, 'last_active_time' => 0, 'last_active_status' => bbp_get_public_status_id()), 'update_forum');
    // Last topic and reply ID's
    bbp_update_forum_last_topic_id($r['forum_id'], $r['last_topic_id']);
    bbp_update_forum_last_reply_id($r['forum_id'], $r['last_reply_id']);
    // Active dance
    $r['last_active_id'] = bbp_update_forum_last_active_id($r['forum_id'], $r['last_active_id']);
    // If no active time was passed, get it from the last_active_id
    if (empty($r['last_active_time'])) {
        $r['last_active_time'] = get_post_field('post_date', $r['last_active_id']);
    }
    if (bbp_get_public_status_id() === $r['last_active_status']) {
        bbp_update_forum_last_active_time($r['forum_id'], $r['last_active_time']);
    }
    // Counts
    bbp_update_forum_subforum_count($r['forum_id']);
    // Only update topic count if we're deleting a topic, or in the dashboard.
    if (in_array(current_filter(), array('bbp_deleted_topic', 'save_post'), true)) {
        bbp_update_forum_reply_count($r['forum_id']);
        bbp_update_forum_topic_count($r['forum_id']);
        bbp_update_forum_topic_count_hidden($r['forum_id']);
    }
    // Update the parent forum if one was passed
    if (!empty($r['post_parent']) && is_numeric($r['post_parent'])) {
        bbp_update_forum(array('forum_id' => $r['post_parent'], 'post_parent' => get_post_field('post_parent', $r['post_parent'])));
    }
}
开发者ID:CompositeUK,项目名称:clone.bbPress,代码行数:54,代码来源:functions.php

示例9: test_bbp_update_forum_topic_count

 /**
  * @covers ::bbp_update_forum_topic_count
  */
 public function test_bbp_update_forum_topic_count()
 {
     // Create a top level forum f1
     $f1 = $this->factory->forum->create();
     bbp_normalize_forum($f1);
     $count = bbp_get_forum_topic_count($f1);
     $this->assertSame('0', $count);
     // Create 3 topics in f1
     $t = $this->factory->topic->create_many(3, array('post_parent' => $f1));
     bbp_update_forum_topic_count($f1);
     $count = bbp_get_forum_topic_count($f1);
     $this->assertSame('3', $count);
     // Create a new sub forum of f1
     $f2 = $this->factory->forum->create(array('post_parent' => $f1));
     // Create another sub forum of f1
     $f3 = $this->factory->forum->create(array('post_parent' => $f1));
     bbp_update_forum_topic_count($f1);
     bbp_update_forum_topic_count($f2);
     bbp_update_forum_topic_count($f3);
     $count = bbp_get_forum_topic_count($f1);
     $this->assertSame('3', $count);
     $count = bbp_get_forum_topic_count($f2);
     $this->assertSame('0', $count);
     $count = bbp_get_forum_topic_count($f3);
     $this->assertSame('0', $count);
     // Create some topics in forum f2
     $this->factory->topic->create_many(4, array('post_parent' => $f2));
     bbp_update_forum_topic_count($f1);
     bbp_update_forum_topic_count($f2);
     bbp_update_forum_topic_count($f3);
     $count = bbp_get_forum_topic_count($f1);
     $this->assertSame('7', $count);
     $count = bbp_get_forum_topic_count($f2);
     $this->assertSame('4', $count);
     $count = bbp_get_forum_topic_count($f3);
     $this->assertSame('0', $count);
     // Create some topics in forum f3
     $this->factory->topic->create_many(5, array('post_parent' => $f3));
     bbp_update_forum_topic_count($f1);
     bbp_update_forum_topic_count($f2);
     bbp_update_forum_topic_count($f3);
     $count = bbp_get_forum_topic_count($f1);
     $this->assertSame('12', $count);
     $count = bbp_get_forum_topic_count($f2);
     $this->assertSame('4', $count);
     $count = bbp_get_forum_topic_count($f3);
     $this->assertSame('5', $count);
 }
开发者ID:joeyblake,项目名称:bbpress,代码行数:51,代码来源:counts.php

示例10: test_bbp_get_forum_post_count

 /**
  * @covers ::bbp_forum_post_count
  * @covers ::bbp_get_forum_post_count
  */
 public function test_bbp_get_forum_post_count()
 {
     $f = $this->factory->forum->create();
     $t = $this->factory->topic->create(array('post_parent' => $f));
     $int_value = 3;
     // Topic + Replies
     $result = 4;
     $formatted_result = bbp_number_format($result);
     $this->factory->reply->create_many($int_value, array('post_parent' => $t));
     bbp_update_forum_topic_count($f);
     bbp_update_forum_reply_count($f);
     // Output
     $count = bbp_get_forum_post_count($f, true, false);
     $this->expectOutputString($formatted_result);
     bbp_forum_post_count($f);
     // Formatted string
     $count = bbp_get_forum_post_count($f, true, false);
     $this->assertSame($formatted_result, $count);
     // Integer
     $count = bbp_get_forum_post_count($f, true, true);
     $this->assertSame($result, $count);
 }
开发者ID:joeyblake,项目名称:bbpress,代码行数:26,代码来源:counts.php


注:本文中的bbp_update_forum_topic_count函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。