Question_Query::__construct( array|string $args = array() )
Description #
Initialize class.
Parameters #
- $argsarray | string (Optional) Query args. Default value: array()
Source #
File: includes/qaquery.php
public function __construct( $args = array() ) { if ( is_front_page() ) { $paged = ap_sanitize_unslash( 'ap_paged', 'g', 1 ); } else { $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; } if ( isset( $args['post_parent'] ) ) { $post_parent = $args['post_parent']; } else { $post_parent = ( get_query_var( 'parent' ) ) ? get_query_var( 'parent' ) : false; } if ( ! isset( $args['ap_order_by'] ) ) { $args['ap_order_by'] = ap_get_current_list_filters( 'order_by', 'active' ); } $defaults = array( 'showposts' => ap_opt( 'question_per_page' ), 'paged' => $paged, 'ap_query' => true, 'ap_order_by' => 'active', 'ap_question_query' => true, 'post_status' => array( 'publish' ), 'ap_current_user_ignore' => false, ); $this->args = wp_parse_args( $args, $defaults ); $this->args['ap_order_by'] = sanitize_title( $this->args['ap_order_by'] ); /** * This was suggested by https://github.com/nash-ye. */ if ( ! $this->args['ap_current_user_ignore'] ) { // Check if user can read private post. if ( ap_user_can_view_private_post() ) { $this->args['post_status'][] = 'private_post'; } // Check if user can read moderate posts. if ( ap_user_can_view_moderate_post() ) { $this->args['post_status'][] = 'moderate'; } // Check if user can read moderate posts. if ( ap_user_can_view_future_post() ) { $this->args['post_status'][] = 'future'; } // Show trash posts to super admin. if ( is_super_admin() ) { $this->args['post_status'][] = 'trash'; } } // Post status to ignore if passed via args. if ( isset( $this->args['post_status__not_in'] ) ) { $post_status__not_in = $this->args['post_status__not_in']; // Update the post_status args. $this->args['post_status'] = array_diff( $this->args['post_status'], $post_status__not_in ); } // Updated post_status args to have the unique array. $this->args['post_status'] = array_unique( $this->args['post_status'] ); // Show only the unpublished post of author. if ( isset( $args['ap_show_unpublished'] ) && true === $this->args['ap_show_unpublished'] ) { $this->args['ap_current_user_ignore'] = true; $this->args['author'] = get_current_user_id(); $this->args['post_status'] = array( 'moderate', 'pending', 'draft', 'trash' ); } if ( $post_parent ) { $this->args['post_parent'] = $post_parent; } if ( '' !== get_query_var( 'ap_s' ) ) { $this->args['s'] = ap_sanitize_unslash( 'ap_s', 'query_var' ); } $this->args['post_type'] = 'question'; parent::__construct( $this->args ); }
Expand full source code Collapse full source code View on GitHub: includes/qaquery.php:37
Add your comment