My Blog
WP All Import Συνάρτηση PHP: Ανέβασμα εικόνων και επιστροφή id των εικόνων
Δωράκι για τους φίλους του WordPress που κάνουν Import με WP All Import 😉
Για την περίπτωση που χρησιμοποιείτε κάποιο theme ή πρόσθετο το οποίο δεν παίρνει τις επιπλέον εικόνες με τον κλασικό τρόπο (εκτός από την featured εικόνα), τότε κατά πάσα πιθανότητα θα πρέπει με κάποιο τρόπο να αποθηκεύσετε τα id των εικόνων ή ίσως και όλοκληρο το ανεβασμένο url.
Χρησιμοποιώντας την παρακάτω συνάρτηση που έχω φτιάξει, μπορείτε να ανεβάσετε τις εικόνες κατά το import και να επιστρέψετε στο ειδικό πεδίο τα id των εικόνων χωρισμένα με "|".
Η συνάρτηση είναι πολύ εύκολη και μπορείτε να την αλλάξετε όπως επιθυμείτε, ακόμα και να σας επιστρέφει κάτι άλλο.
Εάν χρειαστείτε βοήθεια, επικοινωνήστε μαζί μου.
Συνάρτηση:
//Synarthsh upload eikonwn gallery kai epistrofhs id gia eidiko pedio function imageids($url,$url2,$url3,$url4,$url5,$url6,$url7,$url8,$url9,$url10,$url11, $url12,$url13,$url14,$url15,$url16,$url17,$url18,$url19,$url20,$url21,$url22,$url23,$url24,$url25,$url26,$url27,$url28,$url29,$url30){ require_once(ABSPATH . 'wp-admin/includes/media.php'); require_once(ABSPATH . 'wp-admin/includes/file.php'); require_once(ABSPATH . 'wp-admin/includes/image.php'); $urls = array_filter(array($url,$url2,$url3,$url4,$url5,$url6,$url7,$url8,$url9,$url10,$url11, $url12,$url13,$url14,$url15,$url16,$url17,$url18,$url19,$url20,$url21,$url22,$url23,$url24,$url25,$url26,$url27,$url28,$url29,$url30)); if(empty($urls)){ //tipota }elseif(sizeof($urls) > 1) { foreach ($urls as $url){ $src = media_sideload_image( $url, null, null, 'src' ); $image_id = attachment_url_to_postid( $src ); $apotelesma .= $image_id."|"; } return substr($apotelesma,0,-1); }else{ foreach ($urls as $url){ $src = media_sideload_image( $url, null, null, 'src' ); $image_id = attachment_url_to_postid( $src ); $apotelesma = $image_id; } return $apotelesma; } }
Update!!!
Μπορεί να αντιμετωπίσετε το εξής πρόβλημα: Όταν ενημερώνετε ήδη ανεβασμένα post, ακόμα και αν επιλέξετε να μην ενημερωθεί το custom field με τις εικόνες, ο κώδικας θα τρέξει κανονικά και θα κατεβάσει τις εικόνες ξανά και ξανά. Γι' αυτό τον λόγο πρόσθεσα έναν επιπλέον έλεγχο.
Η συνάρτηση που ακολουθεί ελέγχει στην βάση δεδομένων αν υπάρχει το αναγνωριστικό του post ήδη στην βάση και αν ναι, τότε δεν προχωράει με την εκτέλεση της υπόλοιπης συνάρτησης:
</pre> //Synarthsh upload eikonwn gallery kai epistrofhs id gia eidiko pedio -- ARXH function imageids($elegxos,$url,$url2,$url3,$url4,$url5,$url6,$url7,$url8,$url9,$url10,$url11,$url12, $url13,$url14,$url15,$url16,$url17,$url18,$url19,$url20,$url21,$url22,$url23,$url24,$url25,$url26,$url27,$url28,$url29,$url30){ global $wpdb; $metas = $wpdb->get_results( $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_key = 'real_estate_property_identity' AND meta_value = %s", $elegxos) ); if(empty($metas)){ require_once(ABSPATH . 'wp-admin/includes/media.php'); require_once(ABSPATH . 'wp-admin/includes/file.php'); require_once(ABSPATH . 'wp-admin/includes/image.php'); $urls = array_filter(array($url,$url2,$url3,$url4,$url5,$url6,$url7,$url8,$url9,$url10,$url11,$url12, $url13,$url14,$url15,$url16,$url17,$url18,$url19,$url20,$url21,$url22,$url23,$url24,$url25,$url26,$url27,$url28,$url29,$url30)); if(empty($urls)){ //tipota }elseif(sizeof($urls) > 1) { foreach ($urls as $url){ $src = media_sideload_image( $url, null, null, 'src' ); $image_id = attachment_url_to_postid( $src ); $apotelesma .= $image_id."|"; } return substr($apotelesma,0,-1); }else{ foreach ($urls as $url){ $src = media_sideload_image( $url, null, null, 'src' ); $image_id = attachment_url_to_postid( $src ); $apotelesma = $image_id; } return $apotelesma; } }else{ //tipota } } //Synarthsh upload eikonwn gallery kai epistrofhs id gia eidiko pedio -- TELOS
This post is also available in: English