Обзор проблемы
При использовании плагина Advanced Custom Fields может возникнуть следующая фатальная ошибка. Эта ошибка наблюдается именно в PHP 8 или выше:
Fatal error: Uncaught TypeError: Illegal offset type in isset or empty in .../wp-content/plugins/sitepress-multilingual-cms/classes/core-abstract-classes/class-wpml-element-translation.php:259
Обходное решение
Эта проблема исправлена в Advanced Custom Fields Multilingual 2.1.0. Обновление решает эту проблему на Вашем сайте, поэтому это обходное решение понадобится Вам, только если Вы пока не можете выполнить обновление.
Пожалуйста, перед продолжением убедитесь, что у Вас есть полная резервная копия Вашего сайта.
- Откройте файл …/wp-content/plugins/acfml/classes/class-wpml-acf-attachments.php.
- Найдите строку 28.
- Замените:
foreach ( $attachments as $key => $attachment_id ) { $translated_attachments[ $key ] = apply_filters( 'wpml_object_id', $attachment_id, 'attachment', true ); - На:
foreach ( $attachments as $key => $attachment_id ) { if (is_int($attachment_id)) { $translated_attachments[ $key ] = apply_filters( 'wpml_object_id', $attachment_id, 'attachment', true ); }