Get image id from image url wordpress

get id of image from image url wordpress

Functions.php

/*convert image URL to Image ID*/
function pn_get_attachment_id_from_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;
}

Add code where do you want:
$img_url = ‘xxxxxxxxxxxxx’;
$img_id = pn_get_attachment_id_from_url($img_url);

Bonus: get alt of image from id
$alt_text = get_post_meta($img_id , ‘_wp_attachment_image_alt’, true);

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *