Impregnante
- 2
- 3
- 4
axonomies = $element->_settings['all_taxonomies'] ){ unset($query_args['update_post_term_cache']); foreach ( $all_taxonomies as $term_id ) { $term = get_term( $term_id ); if( isset($term->taxonomy) ){ $query_args['tax_query'][] = [ 'taxonomy' => $term->taxonomy, 'field' => 'term_id', 'terms' => absint($term_id), ]; } } } if( ! empty($element->_settings['exclude']) ) { $query_args['post__not_in'] = array_map( 'absint', $element->_settings['exclude'] ); } } // Exclude duplicates if( $element->_settings['exclude_duplicates'] !== '' ){ if( isset($GLOBALS["rey_exclude_posts"]) && ($to_exclude = $GLOBALS["rey_exclude_posts"]) ) { $query_args['post__not_in'] = isset($query_args['post__not_in']) ? array_merge( $query_args['post__not_in'], $to_exclude ) : $to_exclude; } } // get_the_ID() sometimes returns odd results $current_id = get_queried_object_id(); if( isset($query_args['post__not_in']) ){ $query_args['post__not_in'][] = $current_id; } else { $query_args['post__not_in'] = [$current_id]; } if( $element->_settings['exclude_without_image'] !== '' ){ $query_args['meta_query'] = [ [ 'key' => '_thumbnail_id' ] ]; } // Deprecated $query_args = apply_filters_deprecated( 'reycore/elementor/carousel/query_args', [$query_args, $element], '2.4.4', 'reycore/elementor/card/query_args' ); $query_args = apply_filters( 'reycore/elementor/card/query_args', $query_args, $element ); if ( isset($element->_settings['query_id']) && !empty($element->_settings['query_id']) ) { add_action( 'pre_get_posts', [ $element, 'pre_get_posts_query_filter' ] ); } $query = \ReyCore\Helper::get_query( $query_args ); remove_action( 'pre_get_posts', [ $element, 'pre_get_posts_query_filter' ] ); do_action( 'reycore/elementor/query/query_results', $query, $element ); $post_ids = $query->get_posts(); // create the global exclusion array $GLOBALS["rey_exclude_posts"] = isset($GLOBALS["rey_exclude_posts"]) ? array_merge($GLOBALS["rey_exclude_posts"], $post_ids) : $post_ids; if( isset($element->_settings['load_more_enable']) && '' !== $element->_settings['load_more_enable'] ){ $element::$more_total = count($post_ids); } return $post_ids; } public function parse_item($element){ if( ! (isset($element->_items[$element->item_key]) && ($item = $element->_items[$element->item_key])) ){ return []; } $args = [ 'image' => [], '_id' => 'posts-' . $item, 'post_id' => $item, // 'item_classes' => get_post_class('', $item), 'item_classes' => [ 'post-' . $item, 'type-' . esc_attr($element->_settings['post_type']) ], ]; if( in_array($element->_settings[$this->base::CARD_KEY], array_keys($this->base->get_cards_list()), true) ): if( 'no' !== $element->_settings['image_show'] ){ $args['image'] = [ 'id' => get_post_thumbnail_id($item), ]; } $args['button_url'] = [ 'url' => get_permalink($item) ]; $args['button_text'] = $element->_settings['button_text']; $args['captions'] = 'yes'; $args['title'] = get_the_title($item); $args['subtitle'] = get_the_excerpt( $item ); if( $map_label = $element->_settings['posts_map_label'] ){ if( 'date' === $map_label ){ $args['label'] = get_the_date( '', $item ); } else if( 'category' === $map_label ){ $post_cats = array_column(get_the_category( $item ), 'name'); $args['label'] = implode(', ', $post_cats); } } endif; return $args; } public function load_more_button_per_page($element){ return $element->_settings['posts_per_page'] ? $element->_settings['posts_per_page'] : get_option('posts_per_page'); } }