Создание пользовательской функции для замены одной в WordPress - PullRequest
0 голосов
/ 20 июля 2010

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

// 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, но мне интересно, есть ли лучший способ переопределить эту функцию моей собственной?

Спасибо!

Даррен.

Ответы [ 3 ]

1 голос
/ 20 июля 2010

У Mark JaQuith есть статья , рекомендованная страницей Кодекса для функции_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 голосов
/ 20 июля 2010

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

0 голосов
/ 20 июля 2010

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

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

...