Wordpress:使用 url 调整 $term 附件的大小

Wordpress: Resize $term attachment using url

我已经将这个问题提交到 Wordpress 部分,但暂时没有成功。问题可以找here.

我正在使用此插件将图像附加到自定义分类法。插件的功能returns 附件的图片如下:

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

编辑get_wp_term_image($term_id) returns 图片的 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
    }

能否提供解决方案?甚至帮助修改插件本身。谢谢!

你试过了吗?

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

我假设 $meta_image 是您要查找的图像的 ID...如果是这样,我的线路将起作用。您正在将 $term_id 传递给该函数,它是术语的 ID,而不是图像的 ID。

更新

既然你已经指定 $meta_image 是全尺寸图像的 URL ,那么为了得到你想要的东西首先得到它的 ID ... 然后调用一个默认的 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' );