Как исправить ошибку с хлебными крошками после перевода рубрик через плагин wpml, которая вызывает сообщение об ошибке "Notice: Undefined offset: 0 in /Applications/MAMP/htdocs/.../wp-content/themes/.../functions.php on line 232" и "Notice: Trying to get property 'cat_ID' of non-object in /Applications/MAMP/htdocs/.../wp-content/themes/.../functions.php on line 232"? Вот код, который вызывает ошибку:
```php
{
$cat = get_the_category(); $catID = $cat[0]->cat_ID;
$parents = get_ancestors( $catID, 'category' );
$parents = array_reverse( $parents );
$parents[] = $catID;
foreach ( $parents as $cat ) {
$position += 1;
if ( $position > 1 ) echo $sep;
echo sprintf( $link, get_category_link( $cat ), get_cat_name( $cat ), $position );
}
```
А вот код плагина полностью:
https://codepen.io/danelian/pen/zYeWmXE
Ошибка возникает из-за того, что после перевода рубрик через плагин WPML, функция `get_the_category()` возвращает пустой массив.
Чтобы исправить эту проблему, необходимо добавить проверку на наличие категорий перед использованием их в коде.
Вот исправленный код:
```php
{
$cat = get_the_category();
$position = 0;
if ( ! empty( $cat ) ) {
$catID = $cat[0]->cat_ID;
$parents = get_ancestors( $catID, 'category' );
$parents = array_reverse( $parents );
$parents[] = $catID;
foreach ( $parents as $cat ) {
$position += 1;
if ( $position > 1 ) {
echo $sep;
}
echo sprintf( $link, get_category_link( $cat ), get_cat_name( $cat ), $position );
}
}
}
```
Таким образом, код будет проверять наличие категорий в массиве `$cat`, и только тогда будет выполнять остальную работу с хлебными крошками.
Определите рубрику также и для русской версии после перевода. Вопрос решен.