wordpress图像大小基于url

我正在使用自定义字段来选择图片的网址。 我的客户端正在插入和上传所有图像,因此这需要非常简单。这就是我为什么要在幕后处理它的原因。 我遇到的问题是我在全尺寸图像的网址中的所有内容,这实际上减慢了加载时间。 有没有办法可以根据完整大小的网址插入缩略图或其他图像大小? 我已经尝试了这种工作,但我遇到的问题是一些图像没有相同的牙列,所以这需要做得更有动力。
<? $reduceimage = str_replace('.jpg', '-330x220.jpg' , $defaultimage); ?>
    
已邀请:
我认为最好依靠wordpress的原生
wp_get_attachment_image_src()
功能来获得不同大小的图像。但要这样做,您需要附件ID,而不是网址。 将url转换为ID的函数:
function fjarrett_get_attachment_id_by_url( $url ) {

    // Split the $url into two parts with the wp-content directory as the separator
    $parsed_url  = explode( parse_url( WP_CONTENT_URL, PHP_URL_PATH ), $url );

    // Get the host of the current site and the host of the $url, ignoring www
    $this_host = str_ireplace( 'www.', '', parse_url( home_url(), PHP_URL_HOST ) );
    $file_host = str_ireplace( 'www.', '', parse_url( $url, PHP_URL_HOST ) );

    // Return nothing if there aren't any $url parts or if the current host and $url host do not match
    if ( ! isset( $parsed_url[1] ) || empty( $parsed_url[1] ) || ( $this_host != $file_host ) ) {
        return;
    }

    // Now we're going to quickly search the DB for any attachment GUID with a partial path match

    // Example: /uploads/2013/05/test-image.jpg
    global $wpdb;
    $attachment = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->prefix}posts WHERE guid RLIKE %s;", $parsed_url[1] ) );

    // Returns null if no attachment is found
    return $attachment[0];
}
感谢Frankie Jarrett。 然后你可以轻松获得其他尺寸:
$medium_image = wp_get_attachment_image_src( fjarrett_get_attachment_id_by_url($image_link), 'medium');
如果您需要此图片的链接:
$medium_image_link = $medium_image[0];
$html = '<img src="'.$medium_image_link.'" alt="" />';
    

要回复问题请先登录注册