Невозможно использовать объект типа WP_Error как массив

Использование плагина WordPress WPML Я получаю эту ошибку при сохранении черновика сообщения:

PHP Fatal error: Cannot use object of type WP_Error as array in /home/user/domain.com/wp-content/plugins/sitepress-multilingual-cms/inc/taxonomy-term-translation/wpml-term-translations.class.php on line 1018 

На этой линии у меня есть

  $new_term = wp_insert_term( $term_name, $taxonomy, array( 'slug' => self::term_unique_slug( sanitize_title( $term_name ), $taxonomy, $post_lang ) ) ); if ( isset( $new_term[ 'term_taxonomy_id' ] ) ) { $ttid_in_correct_lang = $new_term[ 'term_taxonomy_id' ]; $trid = false; if ( $bulk ) { $trid = $sitepress->get_element_trid( $ttid, 'tax_' . $taxonomy ); } $sitepress->set_element_language_details( $ttid_in_correct_lang, 'tax_' . $taxonomy, $trid, $post_lang ); } } 

В другом потоке я читал о подобной проблеме, но не совсем то же самое, когда плагин пытался получить доступ к объекту в виде массива. Любые идеи, как я мог бы это решить?

Solutions Collecting From Web of "Невозможно использовать объект типа WP_Error как массив"

Ну, это довольно ясно, почему эта проблема возникает.

Давайте посмотрим на документацию wp_insert_term :

Возвращаемые значения

(массив | WP_Error) Идентификатор термина и идентификатор таксономии термина. (Пример: array ('term_id' => 12, 'term_taxonomy_id' => 34))

Как вы можете видеть, при успешном выполнении эта функция возвращает массив. Но … Если возникнет какая-либо ошибка, она вернет объект типа WP_Error.

Итак … Эта фатальная ошибка возникает, потому что wp_insert_term заканчивается ошибкой, а остальная часть кода не обрабатывает ее правильно.

Простой способ исправить это добавляет другое условие для вашего оператора if следующим образом:

 $new_term = wp_insert_term( $term_name, $taxonomy, array( 'slug' => self::term_unique_slug( sanitize_title( $term_name ), $taxonomy, $post_lang ) ) ); if ( !is_wp_error($new_term) && isset( $new_term[ 'term_taxonomy_id' ] ) ) { ... 

Но это не решит реальной проблемы – ошибки, возникающей при вызове wp_insert_term .