Хотя остальные 2 ответа являются «правильными», есть еще что добавить, и я удивлен, что ничего не было упомянуто о !function_exists
.
" is_iterable " добавлено как встроенная функция в PHP 7.1; поэтому любое исправление, которое вы делаете сейчас, должно способствовать переходу на более позднюю версию PHP.
Примечания пользователя к документации PHP включают пример того, как ваш код должен выглядеть для работы с PHP 7.1+ и обратной совместимости с PHP 5.6 :
Так что вам нужно изменить фрагменты кода как в compact.php, так и в custom-function.php, например,
if ( !function_exists( 'is_iterable' ) ) {
function is_iterable( $var ) {
return ( is_array( $var ) || $var instanceof Traversable ); // see note below
}
}
N.B. Пример документации дополнительно включает проверку наличия объекта перед проверкой «проходимости»
return is_array( $var ) || ( is_object( $var ) && ( $var instanceof \Traversable ) );
но я предполагаю, что ранее это работало нормально для вас без дополнительной проверки.
Я не знаю, всегда ли файлы compact.php и custom-function.php всегда включены вместе во всю обработку Wordpress - , если это так, вам нужно всего лишь изменить compact.php и удалить фрагмент из пользовательского -function.php .