So erhalten Sie eine Liste von Pfaden (keine URLs) für ein Bild

Ich kann eine Liste von URLs für ein Bild wie folgt erhalten:

$sizes = array_merge(array('full'),get_intermediate_image_sizes()); foreach ($sizes as $imageSize) { $image_attributes = wp_get_attachment_image_src( $post->ID , $imageSize ); echo $imageSize . ':
' .$image_attributes[0].'
'; }

Das gibt mir

 full: http://img.daswordpress.com/attachments/my_image.png thumbnail: http://img.daswordpress.com/attachments/my_image-150x150.png medium: http://img.daswordpress.com/attachments/my_image-300x116.png 

Was ich will ist

 full: /path/to/public_html/wp-content/_uploads/2014/01/my_image.png thumbnail: /path/to/public_html/wp-content/_uploads/2014/01/my_image-150x150.png medium: /path/to/public_html/wp-content/_uploads/2014/01/my_image-300x116.png 

Solutions Collecting From Web of "So erhalten Sie eine Liste von Pfaden (keine URLs) für ein Bild"

Dies sollte erreichen, was Sie wollen, beachten Sie jedoch, dass es Backslashes UND Schrägstriche im resultierenden Pfadnamen geben wird. Wenn dies auf Ihrem Webserver ein Problem verursacht, müssen Sie möglicherweise einen weiteren str_replace , um Schrägstriche mit str_replace Schrägstrichen weiterzuleiten

Siehe Kommentare im Code für weitere Informationen

 $sizes = array_merge(array('full'),get_intermediate_image_sizes()); $uploads = wp_upload_dir(); foreach ($sizes as $imageSize) { // Get the image object $image_object = wp_get_attachment_image_src($post->ID,$imageSize ); // Isolate the url $image_url = $image_object[0]; // Using the wp_upload_dir replace the baseurl with the basedir $image_path = str_replace( $uploads['baseurl'], $uploads['basedir'], $image_url ); // echo it out echo $imageSize . ':
' .$image_path.'
'; }