WordPress как на ладони
wordpress jino

Kama Thumbnail

В прошлом, когда я был совсем еще зеленым в мире программирования, в тот зимний вечер, я трудился над своим первым шаблон для WordPress. Мне нужно было настроить вывод миниатюр к записям. К тому моменту я уже познакомился с рядом шаблонов для WordPress, в которых встречалась реализация этой задачи. А реализовывалась она посредством, наверняка, известного вам скрипта timthumb.php - создает уменьшенную копию изображения по передаваемой ссылке на это самое изображение. Скрипт этот я конечно в итоге прикрутил к шаблону и был доволен результатом, но это продолжалось недолго...

Все работало: вставляешь в запись изображение, брешь ссылку на него и добавляешь её в, специально созданное произвольное поле. В шаблоне ссылка с этого поля считывается и по ней создается миниатюра. Но спустя какое-то время, постоянное копирование и добавление ссылки в метаполе, стало утомительным занятием. Более того, бывало, что я вообще забывал вставить эту пресловутую ссылку и после публикации приходилось возвращаться к редактированию записи... Знакомо?

В итоге, я написал функцию, которая ищет изображение в посте, вырезает из него ссылку и создает произвольное поле для этого поста и все это автоматически. Позднее эта функция изменилась еще и еще, а в итоге получился этот плагин.

Оглавление:

О плагине создания миниатюр для WordPress

После активации, плагин ничего не делает, чтобы он начал работать нужно будет редактировать шаблон (вызывать функции в том месте, где необходимы миниатюры изображений). Если просто установить и активировать плагин, он ничего делать не будет!

В целом, скрипт очень похож на timthumb.php, однако отличается и в чем-то лучше:

  1. Не нужно вручную создавать произвольное поле со ссылкой на картинку. Поле создается автоматически.

  2. Работает немного быстрее timthumb.php - я сделал все чтобы скрипт работал максимально быстро, никаких проверок без острой необходимости, во всем этом помогает кэш;

  3. Ссылка на картинку будет выглядеть валидно /images/название файла.jpg, а не /functions.php?src=/images/название файла.jpg&w=100&h=100&q=80;

  4. Кэш чиститься вручную. В timthumb.php кэш постоянно проверяется, старые файлы удаляются. На проверку уходят ресурсы (мелочь, но все же). На этом можно экономить;

  5. Ресайзинг можно использовать прямо в посте, указав картинке class mini и нужные размеры;

  6. Гораздо удобнее использовать при интеграции в тему WordPress: не нужно получать значение произвольного поля, проверять существует ли поле, чтобы вывести картинку заглушку. Все это будет делаться автоматом.

  7. На timthumb.php много хакерских атак.

Принцип работы Kama Thumbnail

Создает папку кэша: wp-content/cache/thumb. В нее будут создаваться все миниатюры.

Миниатюры создаются всякий раз, когда вызывается одна из функций плагина для создания миниатюры - их всего 3: kama_thumb_src(), kama_thumb_img(), kama_thumb_a_img(). В функцию можно передать размеры миниатюры и URL картинки из которой нужно сделать миниатюру. URL картинки можно не передавать, тогда функция будет искать картинку для текущей записи.

Как плагин ищет картинку для текущей записи? При публикации или обновлении поста, плагин ищет ссылку на оригинал картинки и записывает её в произвольное поле поста, затем в теме по этой ссылке создается миниатюра. Ссылка определяется в следующем порядке:

  1. Если у поста установлена миниатюра WordPress, её ссылка будет взята;

  2. Если в тексте поста есть картинка, её ссылка будет взята. Если эта картинка является анкором ссылки на увеличенный вариант этой картинки, то будет взят УРЛ ссылки, а не картинки;

  3. Если у поста нет ни миниатюры WP ни картинки в тексте, то плагин проверит нет ли у поста загруженной для него картинки (вложения). Если вложение есть, то ссылка будет взята от туда;

  4. Если ничего не найдено, то в произвольное поле будет добавлена запись-заглушка: "no_photo". Нужно это, чтобы не производить каждый раз эти операции по поиску ссылки.

При удалении плагин удаляет за собой все: произвольные поля, опции в базе данных, кэш картинок, папку кэша.

Скачать

Kama Thumbnail (последняя версия)
Скачано: 193, размер: 19.0 KB, дата: 2.3 года назад

Смотреть плагин в каталоге WordPress →

Настройки kama thumbnail. Настройки > Медиафайлы

Настройки kama thumbnail. Настройки > Медиафайлы

Использование (параметры)

После установки плагина в шаблоне можно использовать функции:

// возвращает УРЛ созданной миниатюры
echo kama_thumb_src( $args, $src );

// возвращает готовую картинку (img тег)
echo kama_thumb_img( $args, $src );

// возвращает ссылку-картинку. Ссылка ведет на оригинал картинки.
echo kama_thumb_a_img( $args, $src );

// получает ширину или высоту картинки. Или любое свойство экземпляра класса,
// который создает картинку. Обычно там могут пригодится только ширина или высота...
// функция нужна, когда создается миниатюра без заранее известной ширины или высоты...
echo kama_thumb( $optname );
// Пример:
echo '<img src="'. kama_thumb_src('w=200') .'" width="200" height="'. kama_thumb('height') .'" alt="" />';
// но в данном случае лучше использовать готовую kama_thumb_img() она все это учитывает...
$args(строка/массив)

Аргументы по которым создавать миниатюру. Все возможные параметры:

  • w | width
    Ширина миниатюры.

  • h | height
    Высота миниатюры

    Если параметры 'w' и 'h' не указаны, то они будут равны 100: получится квадратная картинка 100х100 пикселей.

  • notcrop
    Если указать этот параметр (любое значение), то параметр crop выставиться в false: crop=false. Этот параметр в приоритете перед crop...

  • crop
    Отвечает за кадрирование. По умолчанию кадрирование всегда включено. С версии плагина 2.7.3.

    Чтобы отключить кадрирование, укажите false/0/no/none или определите параметр 'notcrop'. Тогда картинка не будет кадрироваться, а будет создаваться как уменьшенная копия оригинала по указанным размерам одной из сторон: либо высота, либо ширина - выбирается наименьшая подходящая сторона (т.е. одна сторона будет соответствовать h или w, а противоположная будет меньше чем указана в h или w).

    Позиция кадрирования

    Можно указать строку: 'right/bottom' или 'top', 'bottom', 'left', 'right', 'center' и любые их комбинации, через /. Это укажет область кадрирования:

    • 'left', 'right' - для горизонтали
    • 'top', 'bottom' - для вертикали
    • 'center' - для обоих сторон

    Когда указывается одно значение, второе будет по умолчанию. По умолчанию 'center/center'.

    Примеры:

    // картинка скорее всего будет уменьшаться по высоте (большая сторона),
    // а ширина будет срезаться. right означает, что нужно показать 
    // правую часть картинки при срезе, а левую отрезать...
    kama_thumb_img('w=200 &h=400 &crop=right');
    
    // картинка будет показана полностью по ширине (большоая сторона),
    // а высота будет срезаться. top означает, что нужно показать верх картинки, 
    // и нижнюю часть срезать.
    kama_thumb_img('w=400 &h=200 &crop=top');
    
    // указываем два параметра сразу, порядок значения не имеет: top/right или right/top...
    kama_thumb_img('w=400 &h=200 &crop=top/right');

    Уменьшение картинки по указанной стороне

    Чтобы получить не кадрированную пропорционально уменьшенную картинку по конкретной стороне: по ширине или по высоте, нужно указать только ширину или только высоту, тогда противоположная сторона будет подобрана пропорционально. Кадрирования при этом не будет.

    kama_thumb_img('w=200');

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

    По умолчанию: true

  • alt
    alt атрибут картинки.

  • title
    title атрибут картинки.

  • class
    class атрибут <img> тега. По умолчанию: 'aligncenter'.

  • style
    style атрибут IMG тега.

  • attr
    Атрибуты для тега <img>. Строка передается как есть, без очисток.

  • a_class
    class атрибут <a> тега. Для функции kama_thumb_a_img().

  • a_style
    style атрибут <a> тега. Для функции kama_thumb_a_img().

  • a_attr
    Атрибуты для тега <a>. Строка передается как есть, без очисток. Для функции kama_thumb_a_img().

  • no_stub
    Указываем, если не нужно выводить заглушку. Вместо нее будет возвращен пустой результат.

  • yes_stub
    Указываем, если нужно выводить заглушку, когда она отключена в настройках.

  • post_id | post
    Идентификатор или объект поста. Его нужно передавать, когда функция вызывается не из Цикла WordPress, например, внутри какой-нибудь функции. Или, когда переменная $post определяется неправильно. Например, определяется картинка от другой записи или еще какие-нибудь глюки.

    Если передать этот параметр, то скрипт будет точно знать какой пост обрабатывать. Если этот параметр не передан, то будет обрабатываться пост, находящийся в текущий момент (когда вызывается функция) в  переменной $post.

  • attach_id
    ID изображения (вложения) в структуре WordPress. Этот ID можно еще указать числом в параметре $src - во втором параметре функции:

    echo kama_thumb_img('h=200', 250 );
    echo kama_thumb_img('h=200 &attach_id=250');

    attach_id имеет больший приоритет чем src. Т.е. в следующем примере ссылка на картинку http://site.ru/img.png будет обработана, только если нет вложения 250, иначе будет обработано указанное вложение.

    echo kama_thumb_img('h=200 &attach_id=250', 'http://site.ru/img.png');
  • allow
    Разрешенные хосты только для текущего вызова. Эта настройка ставиться глобально в настройках плагина. Но когда нужно указать разрешенный хост не глобально, а только для текущего вызова, его можно указать в этом параметре.

    Если указать 'any', то будет разрешено создавать миниатюры с любых сайтов (хостов). Напомню, что по умолчанию разрешается только с текущего домена и под-доменов. С версии (2.5)

  • q | quality
    Качество сжатия jpg (по умолчанию 85. макс.100).
$src(строка)

Ссылка на картинку, миниатюру которой нужно создать.

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

Можно указать число, тогда плагин будет считать что указано ID вложения - медиафайла WordPress и сам получит URL этого медиафайла и обработает его...

По умолчанию: ''

Если параметр передается как массив, то второй аргумент $src можно передать в этом массиве, под ключом: src, url, link или img:

echo kama_thumb_img( array(
	'src' => 'http://yousite.com/IMAGE_URL.jpg',
	'w' => 150,
	'h' => 100,
) );

Заметки

Параметры можно указывать строкой или массивом
// строкой
kama_thumb_img('w=200 &h=100 &alt=название картинки &class=aligncenter', 'ссылка на произвольную картинку');
// 'ссылка на произвольную картинку' должна указываться как второй аргумент функции. Потому что в ссылке могут быть свои параметры запроса, чтобы не смешались с указанными.

// или массивом (рекомендуется)
kama_thumb_img( array(
	'width'  => 200,
	'height' => 150,
	'class'  => 'alignleft' 
	'src'    => ''
) );
Можно указать только ширину или высоту

Тогда противоположная сторона (высота или ширина) будут подобраны пропорционально уменьшенной копии;

Параметр src

Нужен для случаев, когда нужно создать миниатюру к любой картинке.

Если параметры передаются строкой, то src нужно указывать во втором аргументе функции.

Очистка кэша

В настройках плагина есть 2 кнопки очистки кэша: "весь кэш" и "кэш заглушек". Нужно это для случаев, когда по каким-либо причинам, плагин не смог создать миниатюру по УРЛ. В этом случае для картинки создается заглушка, чтобы не пытаться создать картинку каждый раз при вызове. При очистке кэша заглушек, удаляются только заглушки и для всех заглушек, плагин пытается создать миниатюры еще раз.

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

Картинки с других доменов

По умолчанию можно создавать картинки только с текущего домена или поддоменов.

Чтобы можно было создавать картинки с внешних доменов укажите названия разрешенных доменов в настройках плагина: Настройки - Медиафайлы или в параметре allow при вызове функции.

Если вместо названия домена(ов) указать any, то будет разрешено создание картинок с любых доменов.

Миниатюра в тексте статьи (шоткод)

Если в статье нужно уменьшить картинку и сделать её ссылкой на оригинал, то укажите картинке класс mini и задайте нужные размеры (width или height).

Например, мы вставили картинку в статью:

<img src="http://site.ru/foo.jpg" alt="alt_text" width="1000" height="800" class="aligncenter" />

Но такая большая не нужна, а нужно её уменьшить не визуально, а реально. Для этого добавляем к ней класс mini и указываем нужные размеры (width="300"):

<img src="http://site.ru/foo.jpg" alt="alt_text" width="300" class="aligncenter mini" />

Высота, которую мы удалили будет подобрана автоматически, пропорционально.

Такой подход - не использовать шоткод, мне показался удобнее: мы можем создавать миниатюры к картинкам и при этом видеть как картинка выглядит при редактировании поста, также при возможном удалении плагина, картинки в постах по-прежнему будут показываться (не останется непонятный шоткод).

Чтобы картинка миниатюра создавалась, эта опция должна быть включена в настройках Kama Thumbnail: Настройки > Медиафайлы.

Проверка обязательной установки плагина

Если вы используете этот плагин, то скорее всего тема без него работать уже не будет. Поэтому хорошо бы сделать проверку с предупреждением пользователя, если он отключит плагин, что плагин обязательный и его нужно включить для корректной работы темы.

Для этого поместите такой код в файл темы functions.php.

// обязательный для темы плагин kama thumbnail
if( ! is_admin() && ! function_exists('kama_thumb_img') ){
	 wp_die('Активируйте обязательный для темы плагин Kama Thumbnail');
}

Теперь в случае деактивации плагина, во фронтэнде пользователь увидит сообщение: «Активируйте обязательный для темы плагин Kama Thumbnail».

Скорость работы функций (замеры)

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

Замеры проводились на картинке размером 32КБ (650x350), из которой создавалась миниатюра размером 100x100.

  • kama_thumb_src() - 1 раз = 0.01403, 50 000 раз = 0.54830 сек. (очень быстро)
  • kama_thumb_img() - 1 раз = 0.01471, 50 000 раз = 1.38748 сек. (быстро)
  • kama_thumb_a_img() - 1 раз = 0.01471, 50 000 раз = 1.72967 сек. (быстро)

При работе с кэшем, а это 99% работы плагина, нет разницы какой у картинки размер...

Сообщения о необходимости установить этот плагин

Допустим, ваша тема или плагин использует этот плагин и требует его установки для корректной работы. Так, если плагин не установлен тема может совсем не работать, потому что будет использовать функцию, которой попросту нет в PHP. Давайте отловим такой момент и выведем PHP ошибку уровня NOTICE:

if( ! function_exists('kama_thumb_src') ){
	add_action( 'admin_notices', function(){
		echo '<div class="error"><p>'. __( 'This theme requires plugin Kama Thumbnail. Install it please.', 'dom' ) .'</p></div>';
	} );

	function kama_thumb_src(){}

	function kama_thumb_img(){}

	function kama_thumb_a_img(){}

	function kama_thumb(){}
}

Примеры

#1 Получаем миниатюру

Внутри цикла WordPress, где нужна миниатюра к посту, с  размерами 150х100, используем такой код:

<?php echo kama_thumb_img('w=150 &h=100 &class=alignleft myimg'); ?>

В результате на месте этого кода появится готовый тег <img>:

<img src='ссылка на миниатюру' alt='' class='alignleft myimg' width='150' height='100' />

#2 Не выводим картинку-заглушку

Чтобы картинка-заглушка не выводилась, если у записи нет картинок, то нужно определить параметр no_stub:

<?php echo kama_thumb_img('w=150 &h=100 &no_stub'); ?>

#3 Проверка наличия картинки для записи

Если нужно проверить есть ли у поста картинка и если нет, то сделать что-то другое, то используйте такой код:

$img = kama_thumb_img('w=150 &h=150 &no_stub');
if( ! $img )
	echo 'Картинки нет';

#4 Получаем только УРЛ миниатюры

Если не нужно выводить готовый тег img, а нужно получить только ссылку на миниатюру, чтобы затем её использовать, используйте функцию kama_thumb_src():

<?php echo kama_thumb_src('w=100 &h=80'); ?>

Вернет УРЛ миниатюры: /wp-content/cache/thumb/ec799941f_100x80.png. Этот УРЛ можно использовать, например, так:

<img src='<?php echo kama_thumb_src('w=100 &h=80 &q=75'); ?>' alt='' />

#5 Получаем миниатюру-ссылку на оригинал

Если нужно сделать миниатюру, как картинку, кликнув на которую откроется большое изображение, то используйте такой код:

<?php echo kama_thumb_a_img('w=150 &h=100 &class=alignleft myimg &q=75'); ?>

Выведет на экран:

<a href='ссылка на оригинал картинки'><img src='ссылка на миниатюру' alt='' class='alignleft myimg' width='150' height='100' /></a>

#6 Получаем миниатюру по ссылке на картинку

Если нужно создать миниатюру на определенную картинку (не картинку из текста статьи), то можно передать второй аргумент функции, в котором указать ссылку на картинку.

$src = 'http://домен/картинка.jpg';
echo kama_thumb_img('w=150 &h=100 &class=alignleft', $src );

#7 Параметр post_id

По умолчанию миниатюры создаются для текущего поста, тот который записан в глобальной переменной $post. Иногда эта переменная определена неправильно и картинки могут создаваться другие, относящиеся к другому посту. Чтобы точно определить для какого поста должна создаться миниатюра определите post_id.  Если вызов происходит в Цикле WordPress, то этот параметр указывать не нужно!

<?php echo kama_thumb_img("w=150 &h=100 &post_id=идентификатор_поста"); ?>

#8 Картинки с других доменов: параметр allow

Если в настройках плагина, в разрешенных хостах, не установлен нужный хост и не установлена строка any (разрешить все домены). То разрешенные домены можно указать в параметре allow:

Допустим наш домен это site.ru, а нам нужно создать картинку с сайта 'http://static.othersite.ru/img.jpg'.

// можно указать точно
echo kama_thumb_img('w=200 &h=150 &allow=othersite.ru', 'http://static.othersite.ru/img.jpg');

// или можно указать для всех, чтобы можно было создавать с любого сайта
echo kama_thumb_img('w=200 &h=150 &allow=any', 'http://other-site.ru/img.jpg');

// точно можно указывать несколько доменов через запятую
echo kama_thumb_img('w=200 &h=150 &allow=othersite.ru, foo.com', 'http://foo.com/img.jpg');

Использование не как плагин

Этот плагин можно легко использовать не как плагин, а как простой php файл.

Если вы разрабатываете тему и вам нужен весь функционал этого плагина, но при этом не нужно устанавливать сам плагин, а нужно внедрить миниатюры в тему, то эта короткая инструкция для вас:

  1. Создайте в каталоге темы любую папку, пусть будет 'thumbmaker'  - это для удобства.

  2. Скачайте плагин и скопируйте в созданную папку файлы: class.Kama_Make_Thumb.php и файл no_photo.png.

  3. Подключите файл class.Kama_Make_Thumb.php в начало functions.php:

    require 'thumbmaker/class.Kama_Make_Thumb.php';
  4. Все! Используйте функции: kama_thumb_*() в шаблоне.

  5. При необходимости, откройте файл class.Kama_Make_Thumb.php и отредактируйте настройки (в самом начале файла): УРЛ кэша, УРЛ заглушки, название произ. поля.

Условие использования - упоминание об этом плагине или этой странице в описании темы.

Опрос по плагину

Что добавить/убрать в Kama Thumbnail?

  • Добавить ответ

То что было реализовано из результатов опроса:

1. Добавить плагин в каталог плагинов WordPress - 21 голос
2. Дать отдельно функцию, а не плагин - 12 голосов
3. Готово! Чтобы делал миниатюры на SRC с удаленного ресурса, скачивая их в папку wp-content/cache/thumb - 11 голосов

Обновления

1.6.5 и выше
Смотрите в каталоге WP: https://wordpress.org/plugins/kama-thumbnail/changelog/

1.6.5

  • Английская локализация

1.6.4

  • настройки cache_folder и no_photo_url определяются автоматически, если они не указаны жестко. Теперь плагин будет работать как прежде при переезде, не надо обновлять настройки.+ параметр notcrop и все что с ним связано

Версия 1.6.1 (28 апрель 2014)

  • Нельзя было указать атрибут title, была ошибка в коде.
  • Если физически файла не существовало (такое иногда бывает), то плагин выдавал php ошибку. Сделал так, чтобы выводилась заглушка "no photo".

Версия 1.6.0 (6 марта 2014)

  • Добавил поддержку библиотеки Imagick. Если она установлена на сервере, то миниатюры будут создаваться с помощью нее. Качество и размер миниатюр с этой библиотекой гораздо выше.

  • Теперь расширение у миниатюр такое же как и у оригинала (до этого у всех миниатюр было .png).

Версия 1.5.9.7 (3 марта 2014)

Исправил баг с поиском картинки в тексте. Ссылка на картинку в тексте берется так: если картинка в тексте - это анкор ссылки, то проверятся УРЛ ссылки, если он ведет на увеличенную копию картинки, то берется этот УРЛ, но если это ссылка на веб ресурс, то берется УРЛ картинки-анкора. Мелкие поправки кода.

Версия 1.5.9.2 (20 февраля 2014)

  1. Удалил поддержку NextGen Gallery;

  2. Сделал страницу настроек плагина на странице Медиафайлов WordPress;

  3. Убрал папку кэша из папки плагина, вытащил её наружу в каталок wp-content/cache/thumb;

  4. Доработал парсинг УРЛ если в посте картинка является анкором ссылки на внешний ресурс, то плагин получал ссылку этого ресурса и ставил заглушку...

  5. Изменил, упростил, улучшил код плагина.

Версия 158 (3 октября 2013)

Проверка своего домена стала независимой от регистра, т.е. Site.ru раньше не равнялся site.ru. На ошибку указал комментатор CanaBeasT.

Версия 157 (31 июля 2013)

  • добавил параметры width и height. Иногда удобнее и понятнее использовать их вместо w и h. Также добавил параметр title;

  • добавил HTML атрибуты width/height в img тег при вызове функции kama_thumb_img();

  • добавил новый шоткод для использования плагина в контенте. Теперь, чтобы в контенте изменить размер картинки под нужный нам, добавьте картинке css класс mini (class="mini")  и в атрибутах width и/или height укажите нужные ширину и/или высоту. Старый шоткод [thumb=...] убрал, если вы его повсеместно использовали и не можете переделывать под новую версию плагина измените настройку USETHUMBSHORTCODE на true.

Версия 1.5.4 (19 декабря 2012)
Теперь произвольное поле удаляется при обновлении записи, чтобы оно было заново создано. При удалении плагина, он удаляет за собой все следы прибывания. Немного изменил код: добавил константы, вместо переменных и всякое, по мелочи.

Версия 1.5.3 (13 ноября 2012)
Добавил предварительную проверку миниатюры WP, если она указана для поста, то миниатюра будет создаваться из нее, а не будет выискиваться из контента.

Версия 1.4.0 (11 апреля 2011)
Исправил получение ссылки на картинку, если картинка в тексте является анкором ссылки на оригинал (см. комментарий). Переработал код.  Добавил автоматическую очистку каталога с миниатюрами, каждые 3 дня.

Версия 1.3.1 (11 ноября 2010)
Исправлен нюанс с ресайзом, теперь можно указывать размеры сторон у миниатюр больше чем у оригинала (до этого лишнее пространство заполнялось черным цветом).

Версия 1.3 (9 ноября 2010)
Немного изменен принцип создания миниатюр, теперь если исходный файл png, то миниатюра создается тоже png с сохранением прозрачного слоя. Спасибо Роману, который указал на эту ошибку и сподвиг на её исправление.

22 октября 2010
Добавил аргумент post_id. Исправлены некоторые ошибки и недоработки в коде. Изменил вывод на экран, теперь все функции просто возвращают результат, выводить на экран нужно через echo.

28 октября 2010 v1.2.5
Исправил ошибку с очисткой кэша.

Kama Thumbnail 576 комментариев
Полезные 22 Вопросы 4 Все
  • Ирина

    Здравствуйте.

    У меня такая проблема. В логах идет ошибка

    [Sun Nov 06 23:39:01.682862 2016] [:error] [pid 341023:tid 140388287182592] mod_hostinglimits:Error on LVE enter: LVE(884) HANDLER (application/x-httpd-lsphp) HOSTNAME (домен) URL (/wp-content/themes/goodnews/framework/timthumb/timthumb.php) TID(341096) errno (7) Read more: http://e.cloudlinux.com/MHL-E2BIG min_uid (500)

    Когда становиться много посетителей сайт падает напрочь. Я установила ваш плагин, но он отказался работать. Как убрать timthumb из темы не знаю. Можно все таки интегрировать ваш плагин в тему. Подскажите пожалуйста как это сделать.

    Ответитьгод назад #
    • Kama4697

      В статье написано как это делать - нужно использовать функции плагина в теме... Функции или что там от другого скрипта убрать (заменить)...

      Если сами не справитесь, напишите мне, я за оплату сделаю...

      Ответитьгод назад #
  • Виталий

    Подскажите пожалуйста как можно сжимать изображение исходя из больше стороны изображения.

    Ответитьгод назад #
    • Kama4697

      Этот плагин это и делает... Вам что конкретно надо то?

      Ответитьгод назад #
      • Виталий

        у меня в списке товаров фиксированная ширина и высота изображений 200x200
        Но изображения льют как вертикальные (1000x600) так и горизонтальные (600x1000), надо, что бы он брал большую сторону подгонял ее под 200 а меньшую уже как получится.

        Ответитьгод назад #
        • Kama4697

          Этот плагин так умеет, разберитесь немного. Впрочем родной размер WP тоже можно регнуть с такими параметрами кажется...

          Ответитьгод назад #
  • Максим

    Здравствуйте! У меня выводится миниатюра только тогда, когда она задана. Если посту ничего не задано, то ни первая картинка ни картинка - заглушка не выводится. Пробовал не на одном сайте, даже пробовал на стандартной теме оформления (Twenty Sixteen) - везде одинаковая ситуация. Вывожу миниатюру кодом:

    <!-- Kama Thumbnail -->
    		  <?php if (has_post_thumbnail() ){ ?>
    			<div class="post-thumb">
    			<a href="<?php echo esc_url( get_permalink() ); ?>"><?php echo kama_thumb_img("w=200 &h=200"); ?></a>
    			</div>
    		<?php }  ?>   
    		<!-- end Kama Thumbnail-->

    Права 777 на папку thumb выставлены, в папке есть миниатюры, сгенерированные плагином к постам, у которых заданы миниатюры записи.
    Что я делаю не так?

    Ответитьгод назад #
    • Kama4697

      Так ты же сначала проверяешь наличие именно миниатюры, если она есть потом срабатывает код плагина... Нелогично!

      Надо проверять наличие картинки самим плагином:

      $img = kama_thumb_img('w=150 &h=150 &no_stub');
      if( ! $img )
      	echo 'Картинки нет';

      Твой код:

      <!-- Kama Thumbnail -->
      <?php if( $img = kama_thumb_img('w=200 &h=200 &no_stub') ){ ?>
      	<div class="post-thumb">
      		<a href="<?php the_permalink(); ?>"><?php echo $img ?></a>
      	</div>
      <?php }  ?>
      Ответитьгод назад #
      • Максим

        Благодарю за помощь, теперь миниатюры отображаются! Отличный плагин!

        Ответитьгод назад #
  • popay7 cайт: clubwp.ru

    Перестали выводится миниатюры. Теперь везде заглушки, хотя ссылки все разные например stub_9305d46ef_345x220.jpg и все начинаются на stub_ Возможно это случилось на дочерний шаблон, хотя на других сайтах с дочерними шаблонами с таким же кодом

    <?php echo kama_thumb_img('w=345 &h=220 &class=attachment-thumbnail wp-post-image'); ?>

    работает нормально. Из-за чего это и как это исправить?

    1
    • Kama4697

      Из-за чего не знаю... Что-то изменилось. Так даже не знаю что сказать. Проверь работоспособность плагина вообще...

      1. Укажи ему ссылку прямую на картинку во втором параметре.
      2. Потом попробуй указать параметр post_id.

      Если и то и то работает, то надо искать проблему в коде темы. Возможно где-то выше вызова ты вставил цикл, который ломает переменную $post. unknw

      Просто так не может он сломаться... Что-то ты делал... У меня на нескольких сайтах он отлично работает на последней версии WP...

      • popay7 cайт: clubwp.ru

        Работал плагин отлично и на других сайтах тоже работает. Это обязательный плагин который я ставлю на все сайты. На одном сайте я решил обновить шаблон. Обновил, сделал дочернюю тему и туда вставил ваш код из старой версии шаблона.
        Если надо могу дать ссылку, может на живом примере будет понятно.

      • popay7 cайт: clubwp.ru

        Вернулся к этому вопросу. Сменил хостинг, сменил шаблон. А миниатюры сохраняются заглушками. Попробовал сделать как вы указали. 1 - если указать прямую ссылку, то картинка выводится. 2 - если указать post_id - то выводится заглушка.

        Помогите разобраться в чем проблема? Отключал даже все плагины, но ничего не помогает.

        Обновление: Нашел как побороть, но не знаю почему так. Надо пересохранить статью и тогда миниатюра появляется.

        • Kama4697

          Ну да правильно - это кэш. Там поиск ссылки кэшируется в метаполе, чтобы всегда не искать URL ссылки... При подобных манипуляциях, всегда нужно сбрасывать кэш заглушек и очищать метаполя. При обновлении записи, метаполе очищается, чтобы создаться снова...

  • Плагин работает здорово! Правда не знаю как его использовать для записей которые не имеют вложенной картинки. Даже если использовать параметр no_photo.png для записей без вложенной будет только одна и та же картинка - что не хорошо. Для этого я могу сделать массив картинок для записей без вложений. Пока не начал ломать код класса Kama_Thumbnail решил спросить у разработчика как это правильно можно сделать?

    • Kama4697

      Ломай, там такой возможности не предусмотрено... Замени в коде ссылку на свой массив. Можешь попробовать подменить опцию плагина no_photo_url по нужным тебе условиям...

      • Начал с простого, не ломая класс. В поле "УРЛ картинки заглушки" прописал ссылку

        http://localhost/wp-content/plugins/kama-thumbnail/random.php.

        В random.php просто добавил путь к одной картинке.

        $randomdir = dir(
        'http://localhost/wp-content/plugins/kama-thumbnail/img/IMG_0033.jpg'
        );
        echo $randomdir;
        

        В результате миниатюра пустая с названием stub_eab50d4d9_150x100.php

        shock

  • Что то я рогом уперся.. В весьма популярные новостные темы типа NewsPaper и Publisher ну никак не получается задействовать плагин..
    Там какие то странные вызовы тумбиков типа

            <?php if ( ! empty( $img['src'] ) ) { ?>
    			<div class="featured">
    				<a class="img-holder" href="<?php echo $permalink; ?>" title="<?php the_title_attribute(); ?>"
    				   style="background-image: url(<?php echo $img['src']; ?>);"></a>
    				<?php publisher_edit_post_link(); ?>
    			</div>
    		<?php } ?>
    • Kama4697

      Тут картинка используется в background куда нужно указать только URL картинки, поэтому тебе нужно использовать функцию kama_thumb_src()...

      Примерно так:

              <?php if ( $src = kama_thumb_src('w=200 &h=200 &no_stub') ) { ?>
      			<div class="featured">
      				<a class="img-holder" href="<?php echo $permalink; ?>" title="<?php the_title_attribute(); ?>"
      				   style="background-image: url(<?php echo $src; ?>);"></a>
      				<?php publisher_edit_post_link(); ?>
      			</div>
      		<?php } ?>

      Возможно еще нужно будет указать параметр post_id для функции kama_thumb_src() а то может там глобальная переменная $post не правильно определяется (по коду не видно).

  • Михаил cайт: trapeznaya.ucoz.ru

    Интересно, но так и не понял если установить плагин нужны хуки для удаления копий wordpress или уже нет.

    • Kama4697

      Это не связанные вещи... Ну, логично ненужные копии удалить, зачем они будут создаваться и занимать место?

  • Кирил

    <article id="post-" >

    <a href="" title="">

    У меня вот такой код в теме
    Что тут менять мне не ясно

    Помоги пожлст

  • Ольга

    Здравствуйте. Никак не могу вывести миниатюры в нужном виде. Нужно их отобразить сбоку в анонсах записей (так предусмотрено темой), но у меня получается только вывести их сверху над записями, и если есть уже миниатюра в посте, то показываются сразу два изображения. Как решить эту проблему? помогите пожалуйста!
    вот часть кода в файле content.php

        <?php if ( has_post_thumbnail() ) : ?>
    		<div class="entry-thumb col-md-4 col-sm-4 col-xs-12">
    			<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" >
    				<?php the_post_thumbnail('home-thumb'); ?>
    			</a>          
    		</div>
    		<?php $has_thumb = "col-md-8 col-sm-8 col-xs-12"; ?>
    	<?php else : ?>
    		<?php $has_thumb = ""; ?>
    	<?php endif; ?>
    
    	<div class="entry-summary <?php echo $has_thumb; ?>">
    		<header class="entry-header">
    			<?php the_title( sprintf( '<h1 class="entry-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h1>' ); ?>
    		</header><!-- .entry-header -->     
    		<div class="post-info">
    			<?php if ( 'post' == get_post_type() ) : ?>
    				<?php areview_posted_on(); ?>
    			<?php endif; ?>

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

  • Сергей cайт: poneobhodimosty.ru

    Добрый день, переезжаю на другой хостинг, временно прикрутил другой домен (все сменил домен в siteurl и homepage в базе), в настройки -> медиафайлы все поля заполнил по новой.
    В итоге при попытке загрузить страницу в консоле GET http:// poNeobhodimosty .ru/wp-content/cache/thumb/12ad497c3_90x60.jpg 404 (Not Found) вываливается и очевидно картинки не показываются, по этому пути пусто и ничего не создается.
    у папки thumb права 755, что может быть, куда копать?

    • Сергей cайт: poneobhodimosty.ru

      Решение:
      Глупая ошибка в конце папки пробел либо в настройках либо в директории

      • Kama4697

        В конце какой папки? Может не такая уж и глупая ошибка - при сохранении настроек пробелы должны очищаться ...

Здравствуйте, !

Ваш комментарий