コード例 #1
0
ファイル: meta.php プロジェクト: justintadlock/message-board
/**
 * Registers custom meta keys with WordPress and provides callbacks for sanitizing and authorizing 
 * the metadata.
 *
 * @since  1.0.0
 * @access public
 * @return void
 */
function mb_register_meta()
{
    /* General post meta. */
    register_meta('post', mb_get_prev_status_meta_key(), 'sanitize_key', '__return_true');
    /* Forum meta. */
    register_meta('post', mb_get_forum_activity_datetime_meta_key(), 'esc_html', '__return_true');
    register_meta('post', mb_get_forum_activity_datetime_epoch_meta_key(), 'esc_html', '__return_true');
    register_meta('post', mb_get_forum_last_topic_id_meta_key(), 'absint', '__return_true');
    register_meta('post', mb_get_forum_last_reply_id_meta_key(), 'absint', '__return_true');
    register_meta('post', mb_get_forum_subforum_count_meta_key(), 'absint', '__return_true');
    register_meta('post', mb_get_forum_topic_count_meta_key(), 'absint', '__return_true');
    register_meta('post', mb_get_forum_reply_count_meta_key(), 'absint', '__return_true');
    register_meta('post', mb_get_forum_type_meta_key(), 'esc_html', '__return_true');
    register_meta('post', mb_get_forum_level_meta_key(), 'absint', '__return_true');
    /* Topic meta. */
    register_meta('post', mb_get_topic_activity_datetime_meta_key(), 'esc_html', '__return_true');
    register_meta('post', mb_get_topic_activity_datetime_epoch_meta_key(), 'esc_html', '__return_true');
    register_meta('post', mb_get_topic_last_reply_id_meta_key(), 'absint', '__return_true');
    register_meta('post', mb_get_topic_voices_meta_key(), 'esc_html', '__return_true');
    register_meta('post', mb_get_topic_voice_count_meta_key(), 'absint', '__return_true');
    register_meta('post', mb_get_topic_reply_count_meta_key(), 'absint', '__return_true');
    register_meta('post', mb_get_topic_type_meta_key(), 'esc_html', '__return_true');
    /* User meta. */
    register_meta('user', mb_get_user_forum_subscriptions_meta_key(), 'esc_html', '__return_true');
    register_meta('user', mb_get_user_topic_subscriptions_meta_key(), 'esc_html', '__return_true');
    register_meta('user', mb_get_user_topic_bookmarks_meta_key(), 'esc_html', '__return_true');
    register_meta('user', mb_get_user_forum_count_meta_key(), 'absint', '__return_true');
    register_meta('user', mb_get_user_topic_count_meta_key(), 'absint', '__return_true');
    register_meta('user', mb_get_user_reply_count_meta_key(), 'absint', '__return_true');
}
コード例 #2
0
/**
 * Plugin functions and filters for users.
 *
 * @package    MessageBoard
 * @subpackage Includes
 * @author     Justin Tadlock <*****@*****.**>
 * @copyright  Copyright (c) 2014, Justin Tadlock
 * @link       https://github.com/justintadlock/message-board
 * @license    http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 */
function mb_set_user_forum_count($user_id)
{
    global $wpdb;
    $open_status = mb_get_open_post_status();
    $close_status = mb_get_close_post_status();
    $publish_status = mb_get_publish_post_status();
    $hidden_status = mb_get_hidden_post_status();
    $private_status = mb_get_private_post_status();
    $where = $wpdb->prepare("WHERE post_author = %d AND post_type = %s", $user_id, mb_get_forum_post_type());
    $status_where = "AND (post_status = '{$open_status}' OR post_status = '{$close_status}' OR post_status = '{$publish_status}' OR post_status = '{$private_status}' OR post_status = '{$hidden_status}')";
    $count = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->posts} {$where} {$status_where}");
    update_user_meta($user_id, mb_get_user_forum_count_meta_key(), $count);
    return $count;
}
コード例 #3
0
/**
 * Returns a user's forum count.
 *
 * @since  1.0.0
 * @access public
 * @param  int     $user_id
 * @return int
 */
function mb_get_user_forum_count($user_id = 0)
{
    $user_id = mb_get_user_id($user_id);
    $count = get_user_meta($user_id, mb_get_user_forum_count_meta_key(), true);
    if ('' === $count) {
        $count = mb_set_user_forum_count($user_id);
    }
    $count = !empty($count) ? absint($count) : 0;
    return apply_filters('mb_get_user_forum_count', $count, $user_id);
}