• Добрый день, столкнулся с проблемой: при загрузке фото в админке их не видно, только серые контуры. Если загружать фото через фтп, то они вообще не проявляются в админке вордпресса. Если прикреплять эти изображения к записи, то получается вид=1 и хейгт=1 и фото не отображается на странице. Если вид=1 и хейгт=1 удалить, то фото отобразится в полный размер. А все страницы где есть виджеты из этих фото отображают ошибку:

    Fatal error: Call to undefined function imageconvolution() in /home/papka/domains/site.com/public_html/wp-content/themes/mat/includes/theme-functions.php on line 3624

    но после перезагрузки страницы фото появляются и ошибка исчезает.

    На line 3624 в theme-functions.php вот такой код (жирным выделил саму line 3624)

    //$file_contents = wp_remote_retrieve_body(wp_remote_get($resized_file));
    
    	$image = imagecreatefromstring( file_get_contents( $resized_file ) ); // safe!
    	//$image = imagecreatefromstring( $file_contents ); // safe!
    
    	$size = @getimagesize( $resized_file );
    	if ( !$size )
    		return new WP_Error('invalid_image', __('Не удалось определить размер изображения','ThemeStockyard'), $resized_file);
    	list($orig_w, $orig_h, $orig_type) = $size;
    
    	switch ( $orig_type ) {
    		case IMAGETYPE_JPEG:
    			$matrix = array(
    				array(apply_filters('sharpen_resized_corner',-1), apply_filters('sharpen_resized_side',-1), apply_filters('sharpen_resized_corner',-1)),
    				array(apply_filters('sharpen_resized_side',-1), apply_filters('sharpen_resized_center',24), apply_filters('sharpen_resized_side',-1)),
    				array(apply_filters('sharpen_resized_corner',-1), apply_filters('sharpen_resized_side',-1), apply_filters('sharpen_resized_corner',-1)),
    			);
    
    			$divisor = array_sum(array_map('array_sum', $matrix));
    			$offset = 0;
    			<strong>imageconvolution($image, $matrix, $divisor, $offset);</strong>
    			imagejpeg($image, $resized_file, apply_filters('jpeg_quality', 99, 'edit_image'));
    			break;
    		case IMAGETYPE_PNG:
    			return $resized_file;
    		case IMAGETYPE_GIF:
    			return $resized_file;
    	}

    Помогите пожалуйста решить проблему

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • Модератор Yui

    (@fierevere)

    永子

    проверьте подключено ли расширение php GD

    миниатюры в библиотеке могли быть созданы расширением imagick

    если GD подключена, то пинайте хостера или поставщика пакета PHP
    для доступности функции imageconvolution() должна быть использована libgd поставляемая вместе с PHP, если при сборке была использована внешняя — функция будет недоступна

    а как это проверить?

    Модератор Yui

    (@fierevere)

    永子

    создайте файл phpinfo.php

    с кодом

    <?php
    
    phpinfo();
    
    ?>

    положите на сайт, зайдите на него, там в таблицах будет все написано

    потом удалите, а то мало ли какие любопытные хакеры будут смотреть )

    я нашел вот такое решение

    _grantnorwood.com/2014/11/22/how-to-fix-php-fatal-error-call-to-undefined-function-imageconvolution/

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

    Это в настройках сервера нужно делать? к админам сервера стучаться или на сайте?

    Модератор Yui

    (@fierevere)

    永子

    http://storage6.static.itmages.ru/i/15/0902/h_1441211213_8601037_c8dd3027b2.jpeg

    вот такое вы должны увидеть

    GD version bundled

    Модератор Yui

    (@fierevere)

    永子

    я нашел вот такое решение

    _grantnorwood.com/2014/11/22/how-to-fix-php-fatal-error-call-to-undefined-function-imageconvolution/

    тут советуют установить расширение GD, если оно не было установлено

    Это в настройках сервера нужно делать? к админам сервера стучаться

    да, но сначала посмотрите phpinfo

    Модератор Yui

    (@fierevere)

    永子

    если совсем ничего не поможет — можете эту строку просто убрать,
    это фильтр для картинки, да, вы потеряяте красивый эффект на изображении, зато все остальное будет работать

    imageconvolution($image, $matrix, $divisor, $offset);

    >положите на сайт, зайдите на него, там в таблицах будет все написано

    сделал файл phpinfo.php

    с кодом

    <?php
    
    phpinfo();
    
    ?>

    положил в корень сайта, куда теперь заходить?

    в самом файле phpinfo.php ничего нет

    Модератор Yui

    (@fierevere)

    永子

    положил в корень сайта, куда теперь заходить?

    http://сайт/phpinfo.php

    в самом файле phpinfo.php ничего нет

    <?php
    
    phpinfo();
    
    ?>

    это напишите

    >вот такое вы должны увидеть

    GD version bundled

    у меня вот что в числе прочего выпало

    я так понимаю старая версия gd ?

    это на сервере нужно обновлять получается?

    Модератор Yui

    (@fierevere)

    永子

    функция есть в PHP 5.1 и выше
    вордпресс требует 5.2.4 +
    т.е. у вас должно все быть и работать
    а не работает потому, что пакет PHP был собран с внешней libgd

    т.е. версия 2.0 или 2.1 — не имеет значения, должно быть bundled

    можете конечно попинать техподдержку хостинга, если они адекватны, что бывает не часто, они постараются как-нибудь помочь
    Если нет — посмотрите нет ли на хосте выбора других версий PHP,
    попробуйте попереключать

    если совсем ничего не поможет — можете эту строку просто убрать,
    это фильтр для картинки, да, вы потеряяте красивый эффект на изображении, зато все остальное будет работать

    imageconvolution($image, $matrix, $divisor, $offset);

    Ок огромное спасибо за помощь

    вопрос решили — доставили вторую версию пхп и подключили домен на нее

    всё заработало и ошибка исчезла

    вам спасибо большое за подсказки

    >можете конечно попинать техподдержку хостинга, если они адекватны, что бывает не часто, они постараются как-нибудь помочь

    последние 5 лет арендую сервер на амхосте — там поддержка адекватная и никогда не оставляет вопросы нерешёнными

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • Тема «Fatal error: Call to undefined function imageconvolution() in» закрыта для новых ответов.