- Статус
- Решено
- Заявлено для
- WPML SEO 2.1.0
- Решено в
- 2.2.0
- Связанный плагин/тема
- Rank Math SEO
- Теги темы
- Compatibility
Обзор проблемы
При использовании плагина Rank Math SEO основная категория, заданная для товара или записи на языке по умолчанию, не синхронизируется с переводами. Эта проблема сохраняется, даже если Вы установите для произвольного поля rank_math_primary_product_cat значение Копировать.
Обходное решение
Пожалуйста, перед продолжением убедитесь, что у Вас есть полная резервная копия Вашего сайта.
- Откройте файл functions.php Вашей темы оформления.
- Добавьте следующий код:
// 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; }