diff --git a/functions.php b/functions.php index ede45ea..3177bc8 100644 --- a/functions.php +++ b/functions.php @@ -237,6 +237,34 @@ function e_($word) { echo $word; } +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_action( 'init', 'transportation_posttype' ); if (function_exists("pll_register_string")) { @@ -255,3 +283,4 @@ if (function_exists("pll_register_string")) { ?> +