- Статус
- Открыто
Обзор проблемы
Встроенная функция WordPress has_category не работает для переведенных записей.
Пример выглядит следующим образом:
- У нас есть рубрика с английским слагом «test» и ее французский перевод «test-fr».
- Эта рубрика назначена записям.
- Когда Вы вызываете 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' )
Этот фильтр получает переведенную рубрику на основе названия исходной и проверяет, назначена ли переведенная рубрика записи.