Intereting Posts
Woocommerce Категория продукта Widget – скрыть категории, не имеющие продуктов на складе Независимый от среды способ ссылки на определенные страницы на интерфейсе Не удалось получить идентификатор пользователя после успешного входа в файл wp_login.php Основная проблема аутентификации с пользовательскими конечными точками API Выполнить команду для оптимизации изображений после их загрузки в WordPress Пагинация на index.php не работает на первой странице Добавьте встроенный HTML в сообщения, опубликованные в течение последних 24 часов Как добавить rel nofollow к этому? где начать с разработки темы WordPress add_rewrite_rule: $ matches var не заменяется захваченным значением Как разместить тему страницы в специальном поле / div? Я не могу искать пользователей через user nicename 3 После того, как Apostrophe появится в пользовательских полях после обновления сайта продукта, сортируемые столбцы в настраиваемом типе сообщений не будут работать str_replace в wp-admin

Невозможно использовать объект типа 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 .