• Resolved philiprabbett

    (@philiprabbett)


    Hi, I was having difficulty with my images not resizing properly due to the GUID not being the same after changing domains.

    I amended your function slightly to the following:

    // get attachment ID by image url
    function z_get_attachment_id_by_url( $attachment_url = '' ) {
    	global $wpdb;
    	$attachment_id = false;
    
    	// If there is no url, return.
    	if ( '' == $attachment_url )
    		return;
    
    	// Get the upload directory paths
    	$upload_dir_paths = wp_upload_dir();
    
    	// Make sure the upload path base directory exists in the attachment URL, to verify that we're working with a media library image
    	if ( false !== strpos( $attachment_url, $upload_dir_paths['baseurl'] ) ) {
    
    		// If this is the URL of an auto-generated thumbnail, get the URL of the original image
    		$attachment_url = preg_replace( '/-\d+x\d+(?=\.(jpg|jpeg|png|gif)$)/i', '', $attachment_url );
    
    		// Remove the upload path base directory from the attachment URL
    		$attachment_url = str_replace( $upload_dir_paths['baseurl'] . '/', '', $attachment_url );
    
    		// Finally, run a custom database query to get the attachment ID from the modified attachment URL
    		$attachment_id = $wpdb->get_var( $wpdb->prepare( "SELECT wposts.ID FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta WHERE wposts.ID = wpostmeta.post_id AND wpostmeta.meta_key = '_wp_attached_file' AND wpostmeta.meta_value = '%s' AND wposts.post_type = 'attachment'", $attachment_url ) );
    
    	}
    
    	return $attachment_id;
    }

    Note: This function is not my own but the work of Philip Newcomer at https://philipnewcomer.net/2012/11/get-the-attachment-id-from-an-image-url-in-wordpress/

    https://www.ads-software.com/plugins/categories-images/

Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Author Muhammad

    (@elzahlan)

    Ok I will check this out and see if the plugin need to be updated or not.

    Thanks so much

    +1 for this change

    it seems to fix a problem i had with using the size parameter of the function to get the url for an alternate size of the thumbnail (‘medium’, ‘thumbnail’, etc)

    thanks for the plugin muhammad!!

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Getting attachment ID by URL bug’ is closed to new replies.