$args['offset'] = $_POST['wpr_offset']; } $tax_query = $this->get_tax_query_args(); if ( ! empty( $tax_query ) ) { $args['tax_query'] = $tax_query; } } if ( isset($_POST['wpr_offset']) ) { $args['offset'] = $_POST['wpr_offset']; } if ( 'rand' !== $query_order_by && 'manual' !== $settings['query_selection'] ) { $args['order'] = $settings['order_direction']; } return $args; } // Taxonomy Query Args public function get_tax_query_args() { $settings = $_POST['grid_settings']; $tax_query = []; // Add filter for selected taxonomy and term if they exist if (!empty($_POST['wpr_taxonomy']) && !empty($_POST['wpr_filter']) && $_POST['wpr_filter'] !== 'all' && $_POST['wpr_taxonomy'] !== '*') { $tax_query[] = [ 'taxonomy' => sanitize_text_field($_POST['wpr_taxonomy']), 'field' => 'slug', // Use slug instead of ID for attachments 'terms' => sanitize_text_field($_POST['wpr_filter']), ]; return $tax_query; // Return early with just the selected filter } // Otherwise, use the default taxonomies from settings $media_taxonomies = get_taxonomies(['object_type' => ['attachment']], 'names'); // Get custom attachment taxonomies foreach ($media_taxonomies as $tax) { if (!empty($settings['query_taxonomy_' . $tax])) { $tax_query[] = [ 'taxonomy' => $tax, 'field' => 'slug', // Ensure it's using slug 'terms' => $settings['query_taxonomy_' . $tax], ]; } } return $tax_query; } // Get Animation Class public function get_animation_class( $data, $object ) { $class = ''; // Animation Class if ( 'none' !== $data[ $object .'_animation'] ) { $class .= ' wpr-'. $object .'-'. $data[ $object .'_animation']; $class .= ' wpr-anim-size-'. $data[ $object .'_animation_size']; $class .= ' wpr-anim-timing-'. $data[ $object .'_animation_timing']; if ( 'yes' === $data[ $object .'_animation_tr'] ) { $class .= ' wpr-anim-transparency'; } } return $class; } // Get Image Effect Class public function get_image_effect_class( $settings ) { $class = ''; if ( !defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->can_use_premium_code() ) { if ( 'pro-zi' == $settings['image_effects'] || 'pro-zo' == $settings['image_effects'] || 'pro-go' == $settings['image_effects'] || 'pro-bo' == $settings['image_effects'] ) { $settings['image_effects'] = 'none'; } } // Animation Class if ( 'none' !== $settings['image_effects'] ) { $class .= ' wpr-'. $settings['image_effects']; } // Slide Effect if ( 'slide' !== $settings['image_effects'] ) { $class .= ' wpr-effect-size-'. $settings['image_effects_size']; } else { $class .= ' wpr-effect-dir-'. $settings['image_effects_direction']; } return $class; } // Render Post Thumbnail public function render_post_thumbnail( $settings ) { $id = get_the_ID(); $src = Group_Control_Image_Size::get_attachment_image_src( $id, 'layout_image_crop', $settings ); $alt = '' === wp_get_attachment_caption( $id ) ? get_the_title() : wp_get_attachment_caption( $id ); echo '
'; echo ''. wp_kses_post( $alt ) .''; echo '
'; } // Render Media Overlay public function render_media_overlay( $settings ) { echo '
'; if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->can_use_premium_code() ) { if ( '' !== $settings['overlay_image']['url'] ) { echo ''; } } echo '
'; } // Render Post Title public function render_post_title( $settings, $class ) { $title_pointer = !defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->can_use_premium_code() ? 'none' : $_POST['grid_settings']['title_pointer']; $title_pointer_animation = !defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->can_use_premium_code() ? 'fade' : $_POST['grid_settings']['title_pointer_animation']; $pointer_item_class = (isset($_POST['grid_settings']['title_pointer']) && 'none' !==$_POST['grid_settings']['title_pointer']) ? 'class="wpr-pointer-item"' : ''; $class .= ' wpr-pointer-'. $title_pointer; $class .= ' wpr-pointer-line-fx wpr-pointer-fx-'. $title_pointer_animation; $tags_whitelist = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'span', 'p']; $element_title_tag = Utilities::validate_html_tags_wl( $settings['element_title_tag'], 'h2', $tags_whitelist ); echo '<'. esc_attr($element_title_tag) .' class="'. esc_attr($class) .'">'; echo '
'; if ( 'yes' === $settings['element_disable_link'] ) { echo ''; echo esc_html(wp_trim_words( get_the_title(), $settings['element_word_count'] )); echo ''; } else { echo ''; echo esc_html(wp_trim_words( get_the_title(), $settings['element_word_count'] )); echo ''; } echo '
'; echo ''; } // Render Post Content public function render_post_content( $settings, $class ) { $dropcap_class = 'yes' === $settings['element_dropcap'] ? ' wpr-enable-dropcap' : ''; $class .= $dropcap_class; if ( '' === get_the_content() ) { return; } echo '
'; echo '
'; echo wp_kses_post(get_the_content()); echo '
'; echo '
'; } // Render Post Excerpt public function render_post_excerpt( $settings, $class ) { $dropcap_class = 'yes' === $settings['element_dropcap'] ? ' wpr-enable-dropcap' : ''; $class .= $dropcap_class; if ( '' === get_the_excerpt() ) { return; } echo '
'; echo '
'; echo '

'. esc_html(wp_trim_words( get_the_excerpt(), $settings['element_word_count'] )) .'

'; echo '
'; echo '
'; } // Render Post Date public function render_post_date( $settings, $class ) { echo '
'; echo '
'; echo ''; // Text: Before if ( 'before' === $settings['element_extra_text_pos'] ) { echo ''. esc_html( $settings['element_extra_text'] ) .''; } // Icon: Before if ( 'before' === $settings['element_extra_icon_pos'] ) { ob_start(); \Elementor\Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']); $extra_icon = ob_get_clean(); echo ''; echo $extra_icon; echo ''; } // Date echo esc_html(apply_filters( 'the_date', get_the_date( '' ), get_option( 'date_format' ), '', '' )); // Icon: After if ( 'after' === $settings['element_extra_icon_pos'] ) { ob_start(); \Elementor\Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']); $extra_icon = ob_get_clean(); echo ''; echo $extra_icon; echo ''; } // Text: After if ( 'after' === $settings['element_extra_text_pos'] ) { echo ''. esc_html( $settings['element_extra_text'] ) .''; } echo ''; echo '
'; echo '
'; } // Render Post Time public function render_post_time( $settings, $class ) { echo '
'; echo '
'; echo ''; // Text: Before if ( 'before' === $settings['element_extra_text_pos'] ) { echo ''. esc_html( $settings['element_extra_text'] ) .''; } // Icon: Before if ( 'before' === $settings['element_extra_icon_pos'] ) { ob_start(); \Elementor\Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']); $extra_icon = ob_get_clean(); echo ''; echo $extra_icon; echo ''; } // Time echo esc_html(get_the_time('')); // Icon: After if ( 'after' === $settings['element_extra_icon_pos'] ) { ob_start(); \Elementor\Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']); $extra_icon = ob_get_clean(); echo ''; echo $extra_icon; echo ''; } // Text: After if ( 'after' === $settings['element_extra_text_pos'] ) { echo ''. esc_html( $settings['element_extra_text'] ) .''; } echo ''; echo '
'; echo '
'; } // Render Post Author public function render_post_author( $settings, $class ) { $author_id = get_post_field( 'post_author' ); echo '
'; echo '
'; // Text: Before if ( 'before' === $settings['element_extra_text_pos'] ) { echo ''. esc_html( $settings['element_extra_text'] ) .''; } // Author echo ''; // Icon: Before if ( 'before' === $settings['element_extra_icon_pos'] ) { ob_start(); \Elementor\Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']); $extra_icon = ob_get_clean(); echo ''; echo $extra_icon; echo ''; } if ( 'yes' === $settings['element_show_avatar'] ) { echo get_avatar( $author_id, $settings['element_avatar_size'] ); } echo ''. esc_html(get_the_author_meta( 'display_name', $author_id )) .''; // Icon: After if ( 'after' === $settings['element_extra_icon_pos'] ) { ob_start(); \Elementor\Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']); $extra_icon = ob_get_clean(); echo ''; echo $extra_icon; echo ''; } echo ''; // Text: After if ( 'after' === $settings['element_extra_text_pos'] ) { echo ''. esc_html( $settings['element_extra_text'] ) .''; } echo '
'; echo '
'; } public function render_post_likes( $settings, $class, $post_id ) { $post_likes = new WPR_Post_Likes(); echo '
'; echo '
'; // Text: Before if ( 'before' === $settings['element_extra_text_pos'] ) { echo ''. esc_html( $settings['element_extra_text'] ) .''; } echo $post_likes->get_button( $post_id, $settings ); // Text: After if ( 'after' === $settings['element_extra_text_pos'] ) { echo ''. esc_html( $settings['element_extra_text'] ) .''; } echo '
'; echo '
'; } // Render Post Sharing public function render_post_sharing_icons( $settings, $class ) { $args = [ 'icons' => 'yes', 'tooltip' => $settings['element_sharing_tooltip'], 'url' => esc_url( get_permalink( get_queried_object_id() ) ), 'title' => esc_html( get_the_title() ), 'text' => esc_html( get_the_excerpt() ), 'image' => esc_url( get_the_post_thumbnail_url() ), ]; $hidden_class = ''; echo '
'; echo '
'; // Text: Before if ( 'before' === $settings['element_extra_text_pos'] ) { echo ''. esc_html( $settings['element_extra_text'] ) .''; } echo ''; if ( 'yes' === $settings['element_sharing_trigger'] ) { $hidden_class = ' wpr-sharing-hidden'; $attributes = ' data-action="'. esc_attr( $settings['element_sharing_trigger_action'] ) .'"'; $attributes .= ' data-direction="'. esc_attr( $settings['element_sharing_trigger_direction'] ) .'"'; echo ''; if ( 'yes' === $settings['element_sharing_tooltip'] ) { echo ''. esc_html__( 'Share', 'wpr-addons' ) .''; } echo Utilities::get_wpr_icon( $settings['element_sharing_trigger_icon'], '' ); echo ''; } echo ''; for ( $i = 1; $i < 7; $i++ ) { $args['network'] = $settings['element_sharing_icon_'. $i]; echo Utilities::get_post_sharing_icon( $args ); } echo ''; echo ''; // Text: After if ( 'after' === $settings['element_extra_text_pos'] ) { echo ''. esc_html( $settings['element_extra_text'] ) .''; } echo '
'; echo '
'; } // Render Post Lightbox public function render_post_lightbox( $settings, $class, $post_id ) { echo '
'; echo '
'; $lightbox_source = get_the_post_thumbnail_url( $post_id ); // Audio Post Type if ( 'audio' === get_post_format() ) { // Load Meta Value if ( 'meta' === $settings['element_lightbox_pfa_select'] ) { $utilities = new Utilities(); $meta_value = get_post_meta( $post_id, $settings['element_lightbox_pfa_meta'], true ); // URL if ( false === strpos( $meta_value, '