| @@ -132,8 +132,9 @@ | ||
| 132 | 132 | $this->add_group_control( |
| 133 | 133 | Group_Control_Image_Size::get_type(), |
| 134 | 134 | [ |
| 135 | 135 | 'name' => 'primary_thumbnail', |
| 136 | + // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude -- Elementor widget query built from user-configured controls; expected behaviour. | |
| 136 | 137 | 'exclude' => ['custom'], |
| 137 | 138 | 'default' => 'medium', |
| 138 | 139 | ] |
| 139 | 140 | ); |
| @@ -162,8 +163,11 @@ | ||
| 162 | 163 | ], |
| 163 | 164 | 'default' => [ |
| 164 | 165 | 'size' => 6, |
| 165 | 166 | ], |
| 167 | + 'condition' => [ | |
| 168 | + 'posts_source!' => 'current_query', | |
| 169 | + ] | |
| 166 | 170 | ] |
| 167 | 171 | ); |
| 168 | 172 | |
| 169 | 173 | $this->register_query_builder_controls(); |
| @@ -542,9 +546,9 @@ | ||
| 542 | 546 | [ |
| 543 | 547 | 'label' => esc_html__('Hover Color', 'ultimate-post-kit'), |
| 544 | 548 | 'type' => Controls_Manager::COLOR, |
| 545 | 549 | 'selectors' => [ |
| 546 | - '{{WRAPPER}} .upk-harold-list .upk-item .upk-item-box .upk-content .upk-meta .upk-author a:hover' => 'color: {{VALUE}};', | |
| 550 | + '{{WRAPPER}} .upk-harold-list .upk-item .upk-item-box .upk-content .upk-meta .upk-author a:hover *' => 'color: {{VALUE}};', | |
| 547 | 551 | ], |
| 548 | 552 | ] |
| 549 | 553 | ); |
| 550 | 554 | |
| @@ -586,9 +590,9 @@ | ||
| 586 | 590 | Group_Control_Typography::get_type(), |
| 587 | 591 | [ |
| 588 | 592 | 'name' => 'meta_typography', |
| 589 | 593 | 'label' => esc_html__('Typography', 'ultimate-post-kit'), |
| 590 | - 'selector' => '{{WRAPPER}} .upk-harold-list .upk-item .upk-item-box .upk-content .upk-meta', | |
| 594 | + 'selector' => '{{WRAPPER}} .upk-harold-list .upk-item .upk-item-box .upk-content .upk-meta, {{WRAPPER}} .upk-harold-list .upk-item .upk-item-box .upk-content .upk-meta *', | |
| 591 | 595 | ] |
| 592 | 596 | ); |
| 593 | 597 | |
| 594 | 598 | $this->end_controls_section(); |
| @@ -791,21 +795,33 @@ | ||
| 791 | 795 | $this->register_ajax_loadmore_style_controls(); |
| 792 | 796 | } |
| 793 | 797 | |
| 794 | 798 | /** |
| 795 | - * Main query render for this widget | |
| 796 | - * @param $posts_per_page number item query limit | |
| 799 | + * Get post query builder arguments | |
| 797 | 800 | */ |
| 798 | - public function query_posts($posts_per_page) { | |
| 801 | + public function query_posts( $posts_per_page ) { | |
| 802 | + $settings = $this->get_settings(); | |
| 803 | + $posts_per_page = isset( $posts_per_page ) ? (int) $posts_per_page : 0; | |
| 804 | + $args = $this->getGroupControlQueryArgs(); | |
| 805 | + $is_current_query = ( ! empty( $settings['posts_source'] ) && $settings['posts_source'] === 'current_query' ); | |
| 799 | 806 | |
| 800 | - $default = $this->getGroupControlQueryArgs(); | |
| 801 | - $args = []; | |
| 802 | - if ($posts_per_page) { | |
| 807 | + if ( $is_current_query ) { | |
| 808 | + unset( $args['offset'] ); | |
| 809 | + unset( $args['no_found_rows'] ); | |
| 810 | + $posts_per_page = 0; | |
| 811 | + } | |
| 812 | + | |
| 813 | + if ( $posts_per_page > 0 ) { | |
| 803 | 814 | $args['posts_per_page'] = $posts_per_page; |
| 804 | - $args['paged'] = max(1, get_query_var('paged'), get_query_var('page')); | |
| 815 | + } else { | |
| 816 | + $args['posts_per_page'] = (int) get_option( 'posts_per_page', 10 ); | |
| 805 | 817 | } |
| 806 | - $args = array_merge($default, $args); | |
| 807 | - $this->_query = new WP_Query($args); | |
| 818 | + | |
| 819 | + if ( $settings['show_pagination'] ) { | |
| 820 | + $args['paged'] = max( 1, (int) get_query_var( 'paged' ), (int) get_query_var( 'page' ) ); | |
| 821 | + } | |
| 822 | + | |
| 823 | + $this->_query = new \WP_Query( $args ); | |
| 808 | 824 | } |
| 809 | 825 | |
| 810 | 826 | public function render_author() { |
| 811 | 827 | |
| @@ -879,15 +895,15 @@ | ||
| 879 | 895 | <?php if ($settings['show_author'] or $settings['show_date'] or $settings['show_reading_time']) : ?> |
| 880 | 896 | <div class="upk-meta"> |
| 881 | 897 | <?php $this->render_author(); ?> |
| 882 | 898 | <?php if ($settings['show_date']) : ?> |
| 883 | - <div data-separator="<?php echo esc_html($settings['meta_separator']); ?>"> | |
| 899 | + <div data-separator="<?php echo esc_attr($settings['meta_separator']); ?>"> | |
| 884 | 900 | <?php $this->render_date(); ?> |
| 885 | 901 | </div> |
| 886 | 902 | <?php endif; ?> |
| 887 | 903 | <?php if (_is_upk_pro_activated()) : |
| 888 | 904 | if ('yes' === $settings['show_reading_time']) : ?> |
| 889 | - <div class="upk-reading-time" data-separator="<?php echo esc_html($settings['meta_separator']); ?>"> | |
| 905 | + <div class="upk-reading-time" data-separator="<?php echo esc_attr($settings['meta_separator']); ?>"> | |
| 890 | 906 | <?php echo esc_html( ultimate_post_kit_reading_time( get_the_content(), $settings['avg_reading_speed'], $settings['hide_seconds'] ?? 'no', $settings['hide_minutes'] ?? 'no' ) ); ?> |
| 891 | 907 | </div> |
| 892 | 908 | <?php endif; ?> |
| 893 | 909 | <?php endif; ?> |