WPML
Estado
Resuelto
Resuelto en
WPML Multilingual CMS 4.7.4
Plugin/tema relacionado
Elementor
Etiquetas de temática
Compatibility

Resumen del problema

La función experimental Filtro de taxonomía de Elementor Pro, que actualmente está en fase alfa, presenta problemas cuando se usa con el Loop Grid en páginas traducidas y no muestra los resultados esperados.

Solución alternativa

Por favor, asegúrese de tener una copia de seguridad completa de su sitio antes de continuar.

Parte I


  • Abra el archivo …/wp-content/plugins/elementor-pro/modules/loop-filter/widgets/taxonomy-filter.php.

  • Busque la línea 691.

  • Justo después de:
    		$widget_data = Utils::find_element_recursive( $document->get_elements_data(), $this->get_settings_for_display( 'selected_element' ) );

  • Añada este código:
    		if (isset($widget_data['settings']['post_query_include_term_ids'])) {
    			$translated_data = [];
    			foreach ($widget_data['settings']['post_query_include_term_ids'] as $term_id) {
    				$translated_data[] = get_term($term_id)->term_id;
    			}
    			$widget_data['settings']['post_query_include_term_ids'] = $translated_data;
    		}

Parte II


  • Abra el archivo functions.php de su tema.

  • Añada el siguiente código:
    /**
     * @link wpmlsupp-11444
     */
    add_filter( 'elementor/query/query_args', function( $query_args ) {
    	$translated_query_args = $query_args;
    
    	if (isset($query_args['tax_query'])) {
    		foreach ($query_args['tax_query'] as $key => $query) {
    			if (isset($query['field']) && in_array($query['field'], ['term_id', 'term_taxonomy_id'], true)) {
    				$query['terms'] = array_map(function( $id ) use ($query){
    					return apply_filters( 'wpml_object_id', $id, $query['taxonomy'], TRUE  ); 
    				}, (array) $query['terms']);
    
    				$translated_query_args['tax_query'][$key] = $query;
    			}
    		}
    	}
    
    	return $translated_query_args;
    }, 100 );

Todos los problemas conocidos →