WPML
Статус
Открыто

Обзор проблемы

Встроенная функция WordPress has_category не работает для переведенных записей.

Пример выглядит следующим образом:

  1. У нас есть рубрика с английским слагом «test» и ее французский перевод «test-fr».
  2. Эта рубрика назначена записям.
  3. Когда Вы вызываете has_category(”test”) внутри цикла в файле single.php Вашей темы оформления, она возвращает true для языка по умолчанию, но false для перевода.

Обходное решение

Определите новый фильтр в файле functions.php Вашей темы:

function wp_has_category ($category) {
$category = get_term_by('name', $category, 'category');
return has_category($category);
}
add_filter('wp_has_category', 'wp_has_category', 10, 1);

Замените функцию has_category этим новым фильтром:
apply_filters( 'wp_has_category', 'test' )

Этот фильтр получает переведенную рубрику на основе названия исходной и проверяет, назначена ли переведенная рубрика записи.

Все известные проблемы →