PluginProbe
Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets / 4.5.6
Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets v4.5.6
4.5.6 4.5.5 4.5.4 4.2.1 4.2.2 4.2.3 4.5.0 4.5.2 4.5.3 4.2.0 4.1.18 4.1.17 4.1.16 4.1.15 4.1.14 4.1.13 4.1.12 4.1.11 4.1.10 4.1.9 4.1.8 4.0.9 4.1.0 4.1.1 4.1.2 All 148 releases
← All changes | modules/tiny-list/widgets/tiny-list.php +25 -8 4.0.9 → 4.5.6 View file →
@@ -173,8 +173,9 @@
173 173 $this->add_group_control(
174 174 Group_Control_Image_Size::get_type(),
175 175 [
176 176 'name' => 'primary_thumbnail',
177 + // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude -- Elementor widget query built from user-configured controls; expected behaviour.
177 178 'exclude' => ['custom'],
178 179 'default' => 'thumbnail',
179 180 'condition' => [
180 181 'show_image' => 'yes'
@@ -258,8 +259,11 @@
258 259 ],
259 260 'default' => [
260 261 'size' => 4,
261 262 ],
263 + 'condition' => [
264 + 'posts_source!' => 'current_query',
265 + ]
262 266 ]
263 267 );
264 268
265 269 $this->register_query_builder_controls();
@@ -757,20 +761,33 @@
757 761 $this->register_ajax_loadmore_style_controls();
758 762 }
759 763
760 764 /**
761 - * Main query render for this widget
762 - * @param $posts_per_page number item query limit
765 + * Get post query builder arguments
763 766 */
764 - public function query_posts($posts_per_page) {
767 + public function query_posts( $posts_per_page ) {
768 + $settings = $this->get_settings();
769 + $posts_per_page = isset( $posts_per_page ) ? (int) $posts_per_page : 0;
770 + $args = $this->getGroupControlQueryArgs();
771 + $is_current_query = ( ! empty( $settings['posts_source'] ) && $settings['posts_source'] === 'current_query' );
765 772
766 - $default = $this->getGroupControlQueryArgs();
767 - if ($posts_per_page) {
773 + if ( $is_current_query ) {
774 + unset( $args['offset'] );
775 + unset( $args['no_found_rows'] );
776 + $posts_per_page = 0;
777 + }
778 +
779 + if ( $posts_per_page > 0 ) {
768 780 $args['posts_per_page'] = $posts_per_page;
769 - $args['paged'] = max(1, get_query_var('paged'), get_query_var('page'));
781 + } else {
782 + $args['posts_per_page'] = (int) get_option( 'posts_per_page', 10 );
770 783 }
771 - $args = array_merge($default, $args);
772 - $this->_query = new WP_Query($args);
784 +
785 + if ( $settings['show_pagination'] ) {
786 + $args['paged'] = max( 1, (int) get_query_var( 'paged' ), (int) get_query_var( 'page' ) );
787 + }
788 +
789 + $this->_query = new \WP_Query( $args );
773 790 }
774 791
775 792 public function render_post_grid_item($post_id, $image_size) {
776 793 $settings = $this->get_settings_for_display();