Глобальный хук для term name
Подскажите пожалуйста, какой хук использовать, чтобы переписывать заголовок терминов (любых, кастомных и стандатных). Сейчас дописываю свой скрипт мультиязычности. Вот пример на the_title:
function translate_title( $title, $id = null ) { $item = get_post( $id ); if ( $item->post_type != 'nav_menu_item' ) { global $lang; if ($lang != 'ru') { $translated = get_post_meta($id, 'title_' . $lang, true); if (empty($translated)) { $translated_fallback = get_post_meta($id, 'title_en', true); if (empty($translated_fallback)) { return $title; } else { return $translated_fallback; } } else { return get_post_meta($id, 'title_' . $lang, true); } } else { return $title; } } else { return $title; } } add_filter( 'the_title', 'translate_title', 10, 2 );
Данный код успешно переводит как заголовки на странице, так и заголовки в меню.
А вот код, который я написал для категорий:
function translate_cat_title( $term_name ) { global $lang; if ($lang != 'ru') { $translated = get_term_meta( get_cat_ID( $term_name ), 'name_' . $lang, true ); if (empty($translated)) { $translated_fallback = get_term_meta( get_cat_ID( $term_name ), 'name_en', true ); if (empty($translated_fallback)) { return $term_name; } else { return $translated_fallback; } } else { return get_term_meta( get_cat_ID( $term_name ), 'name_' . $lang, true ); } } else { return $term_name; } } add_filter( 'single_cat_title', 'translate_cat_title' );
Как видно из кода - он работает для single_cat_title, но элементы меню уже не переводит и, подозреваю, не будет переводить кастомные термины (ещё не успел проверить).
Короче, вроде сам решил)) Работает великолепно, ошибок не выдаёт: