0, 'title' => 'Recent Posts', 'forumids' => [], 'orderby' => 'created', 'order' => 'DESC', 'count' => 9, 'limit_per_topic' => 0, 'display_avatar' => true, 'forumids_filter' => false, 'current_forumid_filter' => false, 'exclude_firstposts' => false, 'display_only_unread' => false, 'display_new_indicator' => false, 'refresh_interval' => 0, 'excerpt_length' => 55, ]; $allowed_orderby = [ 'created', 'modified' ]; $allowed_order = [ 'DESC', 'ASC', 'RAND' ]; $instance = wp_parse_args( $attributes, $default_instance ); if( ! is_string( $instance['orderby'] ) || ! in_array( $instance['orderby'], $allowed_orderby, true ) ) { $instance['orderby'] = $default_instance['orderby']; } if( ! is_string( $instance['order'] ) || ! in_array( $instance['order'], $allowed_order, true ) ) { $instance['order'] = $default_instance['order']; } // wpForo Recent Posts widget logic wp_enqueue_script( 'wpforo-widgets-js' ); $is_user_logged_in = (bool) WPF()->current_userid; if( $instance['display_only_unread'] ) { $display_block = $is_user_logged_in; $display_block = apply_filters( 'wpforo_widget_display_recent_posts', $display_block ); } else { $display_block = true; } if( ! $display_block ) return; if( $instance['current_forumid_filter'] && $instance['boardid'] === WPF()->board->get_current( 'boardid' ) && $current_forumid = wpfval( WPF()->current_object, 'forumid' ) ) { $instance['forumids'] = (array) $current_forumid; } $data = [ 'boardid' => $instance['boardid'], 'action' => 'wpforo_load_ajax_widget_RecentPosts', 'instance' => $instance, 'post_args' => [ 'forumids' => ( $instance['forumids'] ?: $default_instance['forumids'] ), 'orderby' => $instance['orderby'], 'order' => $instance['order'], 'row_count' => ( intval( $instance['count'] ) ?: $default_instance['count'] ), 'limit_per_topic' => ( intval( $instance['limit_per_topic'] ) ?: $default_instance['limit_per_topic'] ), 'is_first_post' => $instance['exclude_firstposts'] ? false : null, 'check_private' => true, ], ]; if( WPF()->board->get_current( 'boardid' ) === (int) $instance['boardid'] ) { $recent_posts_widget = new \wpforo\widgets\RecentPosts(); $html = $recent_posts_widget->get_widget( $data['instance'], $data['post_args'] ); $onload = false; } else { $html = '