WordPress: изменить размер $ term вложений с помощью URL

Я отправил этот вопрос в раздел WordPress на данный момент безуспешно. Вопрос можно найти Вот.

Я использую этот плагин для прикрепления изображения к пользовательской таксономии. Функция плагина возвращает изображение прикрепленного термина следующим образом:

function get_wp_term_image($term_id){
return get_option('_category_image'.$term_id);
}

РЕДАКТИРОВАТЬ: get_wp_term_image($term_id) возвращает URL изображения.

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

$term_id = $term->term_id;
if (function_exists('get_wp_term_image'))
{
$meta_image = get_wp_term_image($term_id);
//tried this
$term_image = wp_get_attachment_image_src($term_id, 'smalltax');
//and this
$image_id = attachment_url_to_postid($meta_image);
//no success
}
  • В первом случае я предположил, что wp_get_attachment_image_src Крюк считает вложение с любого идентификатора, но я был неправ. NB. У меня нет идентификатора изображения, у меня есть image url и term_id
  • Во втором случае я подумал получить $ image_id с
    attachment_url_to_postid зацепить, а затем изменить размер с некоторыми другими
    подстройка.

Можете ли вы предоставить решение? Даже помогает изменить сам плагин. Спасибо!

0

Решение

Ты пытался?

$term_image = wp_get_attachment_image_src($meta_image, 'smalltax');

Я предполагаю, что $ meta_image — это идентификатор изображения, которое вы ищете … если так, моя строка будет работать. Вы передаете этой функции $ term_id, который является идентификатором термина, а не идентификатором изображения.

ОБНОВИТЬ

Поскольку вы указали, что $ meta_image является URL-адресом полноразмерного изображения, то для того, чтобы получить то, что вы хотите, сначала получите его идентификатор … затем вызовите функцию WP по умолчанию, чтобы получить нужный размер изображения. Что-то вроде хака о пути, но, похоже, это ваш единственный вариант … Так что вам понадобится функция, подобная этой:

// Function to get an image's ID by it's full sized URL
function get_image_id_by_url( $image_url ) {
global $wpdb;
$attachment = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE guid='%s';", $image_url ) );
return $attachment[0];
}

Тогда вы будете использовать что-то в этих строках:

$image_id = get_image_id_by_url( $image_url );
$$term_image = wp_get_attachment_image_src( $image_id, 'smalltax' );
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]