WPML
Status
Gelöst
Gemeldet für
WPML SEO 2.1.0
Gelöst in
2.2.0
Zugehöriges Plugin/Theme
Rank Math SEO
Themen-Tags
Compatibility

Übersicht über das Problem

Wenn Sie das Rank Math SEO-Plugin verwenden, wird die primäre Kategorie, die für ein Produkt oder einen Beitrag in der Standardsprache festgelegt wurde, nicht mit den Übersetzungen synchronisiert. Dieses Problem besteht weiterhin, selbst wenn Sie das benutzerdefinierte Feld rank_math_primary_product_cat auf Kopieren setzen.

Problemumgehung

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


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

  • Fügen Sie den folgenden Code hinzu:
    // compsupp-6580: sync primary term and primary product terms for Rank Math
    add_filter('get_post_metadata', 'compsupp6580_filter_the_post_metadata', 20, 4);
    
    function compsupp6580_filter_the_post_metadata($value, $postId, $key, $single)
    {
    
    	$meta_keys_mapping = array(
    		'rank_math_primary_category'    => 'category',
    		'rank_math_primary_product_cat' => 'product_cat',
    	);
    
    	if (in_array($key, array_keys($meta_keys_mapping), true)) {
    		remove_filter('get_post_metadata', 'compsupp6580_filter_the_post_metadata', 20);
    		$value = get_post_meta($postId, $key, true);
    		add_filter('get_post_metadata', 'compsupp6580_filter_the_post_metadata', 20, 4);
    
    		$args     = [
    			'element_id'   => $postId,
    			'element_type' => get_post_type($postId),
    		];
    		$language = apply_filters('wpml_element_language_code', false, $args);
    		$value    = apply_filters('wpml_object_id', $value, $meta_keys_mapping[$key], true, $language);
    
    		if (!$single) {
    			$value = [$value];
    		}
    	}
    
    	return $value;
    }

Alle bekannten Probleme →