WPML
Status
Gelöst
Gelöst in
WPML Multilingual CMS 4.7.4
Zugehöriges Plugin/Theme
Elementor
Themen-Tags
Compatibility

Übersicht über das Problem

Die experimentelle Funktion Taxonomie-Filter von Elementor Pro, die sich derzeit in der Alpha-Phase befindet, weist bei der Verwendung mit dem Loop Grid auf übersetzten Seiten Probleme auf und zeigt nicht die erwarteten Ergebnisse an.

Problemumgehung

Bitte stellen Sie sicher, dass Sie über ein vollständiges Backup Ihrer Website verfügen, bevor Sie fortfahren.

Teil I


  • Öffnen Sie die Datei …/wp-content/plugins/elementor-pro/modules/loop-filter/widgets/taxonomy-filter.php.

  • Suchen Sie nach Zeile 691.

  • Direkt nach:
    		$widget_data = Utils::find_element_recursive( $document->get_elements_data(), $this->get_settings_for_display( 'selected_element' ) );

  • Fügen Sie diesen Code hinzu:
    		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;
    		}

Teil II


  • Öffnen Sie die Datei functions.php Ihres Themes.

  • Fügen Sie den folgenden Code hinzu:
    /**
     * @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 );

Alle bekannten Probleme →