WPML

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

При использовании плагина 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 );
    	}

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

Всё ещё сталкиваетесь с этой проблемой?

Если обновление не устраняет проблему, отправьте запрос в поддержку, и мы разберемся в ней вместе с Вами.