2010-07-20 2 views
0

Я использую WordPress 3.0 и функцию the_post_thumbnail для изменения размеров моих изображений. Проблема в том, что функция не изменяет размер до точных размеров, если вы не укажете квадратное изображение.Создание пользовательской функции для ее замены в WordPress

// Works fine 
add_image_size('my-image-size',100, 100, true); 

// Image is only resized to width or height, not both 
add_image_size('my-image-size',265, 182, true); 

Я уверен, что это ошибка, так как я чувствую, что изображение должно быть обрезаны в обоих направлениях, чтобы сделать точный размер. Я мог бы просто отредактировать функцию image_resize_dimensions в media.php, но мне интересно, есть ли лучший способ, каким-то образом переопределить эту функцию моим собственным?

Спасибо!

Darren.

ответ

0

В большинстве моих разработок до версии 3.0 я использовал плагин timthumb с большим успехом. Поскольку я также нашел встроенный модуль, в функциях не хватает. Вы можете найти информацию here.

+0

Привет, я использовал этот плагин в сочетании с этим маленьким драгоценным камнем, чтобы получить URI изображения, а затем изменить его размер с помощью phpTumb. Simples! http://www.leewillis.co.uk/getting-url-post-thumbnails-wordpress/ – iamdarrenhall

0

Вы не можете переопределять функции в PHP. Если вы попытаетесь определить функцию с тем же именем в той же области действия, вы получите фатальную ошибку. Очевидно, вы можете использовать это: override_function() для переопределения встроенных функций. Однако не уверены в том, что они определяют в других файлах.

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

+0

Я знаю, что в WordPress вы можете добавить крючки и фильтры, я просто интересно, есть ли что-то подобное для этого. – iamdarrenhall

1

Mark JaQuith has an article Рекомендован функцией Codex page on the_post_thumbnail. Он обсуждает с использованием другой функции «set_post_thumbnail_size() для изменения размеров изображений.

set_post_thumbnail_size(50, 50, true); 
    // 50 pixels wide by 50 pixels tall, hard crop mode 

Он имеет аргумент флага урожая, который вы можете пройти, чтобы выполнить жесткий урожай до точных размеров вы определяете, или мягкую культуру, которые работает так, как вы переживаете. Я знаю, что статья обсуждает WP 2.9 специально, но это может помочь.

+0

Да, но проблема в том, что жесткая обрезка работает неправильно. – iamdarrenhall