ap_total_posts_count( string $post_type = 'question', boolean|string $ap_type = false, false|int $user_id = false )
Description #
Return the total numbers of post.
Parameters #
- $post_typestring (Optional) Post type. Default value: 'question'
- $ap_typeboolean | string (Optional) ap_meta type. Default value: false
- $user_idfalse | int (Optional) User id, default is current user id. Default value: false
Source #
File: includes/functions.php
function ap_total_posts_count( $post_type = 'question', $ap_type = false, $user_id = false ) { global $wpdb; if ( 'question' === $post_type ) { $type = "p.post_type = 'question'"; } elseif ( 'answer' === $post_type ) { $type = "p.post_type = 'answer'"; } else { $type = "(p.post_type = 'question' OR p.post_type = 'answer')"; } $meta = ''; $join = ''; if ( 'flag' === $ap_type ) { $meta = 'AND qameta.flags > 0'; $join = "INNER JOIN {$wpdb->ap_qameta} qameta ON p.ID = qameta.post_id"; } elseif ( 'unanswered' === $ap_type ) { $meta = 'AND qameta.answers = 0'; $join = "INNER JOIN {$wpdb->ap_qameta} qameta ON p.ID = qameta.post_id"; } elseif ( 'best_answer' === $ap_type ) { $meta = 'AND qameta.selected > 0'; $join = "INNER JOIN {$wpdb->ap_qameta} qameta ON p.ID = qameta.post_id"; } $where = "WHERE p.post_status NOT IN ('trash', 'draft') AND $type $meta"; if ( false !== $user_id && (int) $user_id > 0 ) { $where .= ' AND p.post_author = ' . (int) $user_id; } $where = apply_filters( 'ap_total_posts_count', $where ); $query = "SELECT count(*) as count, p.post_status FROM $wpdb->posts p $join $where GROUP BY p.post_status"; $count = $wpdb->get_results( $query, ARRAY_A ); // @codingStandardsIgnoreLine $counts = array(); foreach ( (array) get_post_stati() as $state ) { $counts[ $state ] = 0; } $counts['total'] = 0; if ( ! empty( $count ) ) { foreach ( $count as $row ) { $counts[ $row['post_status'] ] = (int) $row['count']; $counts['total'] += (int) $row['count']; } } return (object) $counts; }
Expand full source code Collapse full source code View on GitHub: includes/functions.php:782
Add your comment