* @license GPL 3+ GNU GPL licence above 3+ * @link https://anspress.io * @since 2.0.0 */ // If this file is called directly, abort. if ( ! defined( 'WPINC' ) ) { die; } /** * The question widget class. */ class AP_Questions_Widget extends WP_Widget { /** * Initialize the class. */ public function __construct() { parent::__construct( 'ap_questions_widget', __( '(AnsPress) Questions', 'anspress-question-answer' ), array( 'description' => __( 'Shows list of question shorted by option.', 'anspress-question-answer' ) ) ); } /** * Widget render * * @param array $args Arguments. * @param array $instance Widget arguments. * @return void */ public function widget( $args, $instance ) { $instance = wp_parse_args( $instance, array( 'widget_title' => __( 'Questions', 'anspress-question-answer' ), 'order_by' => 'active', ) ); /** * This filter is documented in widgets/question_stats.php */ $title = apply_filters( 'widget_title', $instance['title'] ); $order_by = $instance[ 'order_by' ]; $limit = $instance[ 'limit' ]; $category_ids = $instance[ 'category_ids' ]; if ( ! empty( $category_ids ) ) { $category_ids = explode( ',', str_replace( ' ', '', $category_ids ) ); } echo $args['before_widget']; if ( ! empty( $title ) ) { echo $args['before_title'] . $title . $args['after_title']; } $question_args = array( 'showposts' => $limit, 'ap_order_by' => $order_by, 'paged' => 1, ); if ( is_array( $category_ids ) && count( $category_ids ) > 0 ) { $question_args['tax_query'][] = array( 'taxonomy' => 'question_category', 'field' => 'term_id', 'terms' => $category_ids, ); } anspress()->questions = ap_get_questions( $question_args ); echo '
'; ap_get_template_part( 'widgets/widget-questions' ); echo '
'; echo $args['after_widget']; wp_reset_postdata(); } public function form( $instance ) { $title = __( 'Questions', 'anspress-question-answer' ); $order_by = 'active'; $limit = 5; $category_ids = ''; if ( isset( $instance[ 'title' ] ) ) { $title = $instance[ 'title' ]; } if ( isset( $instance[ 'order_by' ] ) ) { $order_by = $instance[ 'order_by' ]; } if ( isset( $instance[ 'limit' ] ) ) { $limit = $instance[ 'limit' ]; } if ( isset( $instance[ 'category_ids' ] ) ) { $category_ids = $instance[ 'category_ids' ]; } ?>