मेरे पास आखिर है !! इस चीज़ को मैंने बनाने के लिए लगभग 12 बार और 12 अलग-अलग तरीकों से कोशिश की है, लेकिन आखिरकार इसे काम करने के लिए मिला, ... की तरह।
मैंने पोस्ट करने के लिए छवियों को अपलोड करने और संलग्न करने के लिए एक कस्टम मेटाबॉक्स बनाया है, और आपको WP में निर्मित भयानक मोटीबॉक्स मीडिया अपलोडर का उपयोग करने की आवश्यकता नहीं है। मुझे उस चीज से नफरत है। नहीं, मैंने जो कुछ किया है वह केवल इनपुट्स (शीर्षक, विवरण, फ़ाइल) का एक समूह है, जिसे आप चाहें तो अतिरिक्त अनुलग्नकों को जोड़ने के लिए डुप्लिकेट भी कर सकते हैं। इसलिए आप फ़ील्ड भरें, अपलोड करने के लिए एक छवि का चयन करें, और ड्राफ्ट को सहेजें या पोस्ट प्रकाशित करें। एक बार किसी पोस्ट में अटैचमेंट जोड़ दिए जाने के बाद, मेटाबॉक्स आपके द्वारा जोड़े गए प्रत्येक अनुलग्नक के लिए संलग्न छवि की पूर्वावलोकन छवि के साथ-साथ इनपुट फ़ील्ड प्रदर्शित करेगा। शीर्षक और विवरण फ़ील्ड का उपयोग फ़ाइल मेटा डेटा उत्पन्न करने के लिए किया जाता है, कुछ भी पोस्ट_मेटा के रूप में सहेजा नहीं जाता है, जिसे मैं जानता हूं। वर्तमान में यह सब है कि मैंने अब तक काम कर लिया है।
मुझे इसे बनाने की आवश्यकता है ताकि जब आप किसी पोस्ट को सेव / पब्लिश करें, अटैचमेंट फाइल अपलोड / क्रिएट करें, तो यह तीन इमेज साइज बनाएगा क्योंकि डिफॉल्ट wp अपलोडर होगा, थंबनेल, मीडियम, लार्ज, और फुल साइज इमेज भी रखेगा। । अगर यह किसी तरह संभव है। यदि नहीं, तो मैं add_image_size()
नए कस्टम आकारों को बनाने / परिभाषित करने के लिए उपयोग करना चाहूंगा , और उन्हें अपलोड करने पर इसके बजाय उन्हें उत्पन्न करना होगा।
मुझे यकीन नहीं है कि कौन सा फ़ंक्शन इस मामले में उपयोग करने के लिए सबसे आदर्श है, शायद image_make_intermediate_size()
फ़ंक्शन बेहतर होगा, wp_create_thumbnail()
या wp_crop_image()
... या कौन जानता है !!
मैं यह पता नहीं लगा सकता कि ऐसा करने के बारे में कैसे जाना है, अगर मुझे wp_handle_upload()
फ़ंक्शन को प्रत्येक के लिए चलाने की आवश्यकता है, या हो सकता है कि wp_generate_attachment_metadata()
फ़ंक्शन में कुछ शामिल हो । यह मेरे लिए भ्रामक है क्योंकि 3 छवि आकार एक ही लगाव के वेरिएंट के रूप में जुड़े हुए हैं, और यह कैसे करना है।
मैंने वेब को स्कैन किया है, हर wp मीडिया / अपलोड / इमेज से संबंधित फाइल के स्रोत को पढ़ा है, और मीडिया अपलोड सामान के लिए हर फंक्शन के साथ खेला है और यह नहीं पा सकता है कि WP कहीं भी 3 इमेज साइज बनाता है, या कैसे करना है मैं खुद।
Wp में शामिल / media.php image_resize()
फ़ंक्शन ऐसा लगता है कि यह सबसे अच्छा होगा क्योंकि यह वास्तव में यही होना चाहिए। मैं अभी अपने जीवन के बारे में पता नहीं लगा सकता हूँ कि मैं क्या याद कर रहा हूँ या क्या करने की कोशिश की है लेकिन छवि को बनाने के लिए गलत किया है।
यहाँ मेरा कार्य है कि करता है wp_handle_upload()
सामान और बातें करता है, लेकिन यह भी 100px अंगूठे बनाने की जरूरत है, और छवि है कि 500px की तरह अधिकतम चौड़ाई है, और अपलोड की गई नई फ़ाइलों के रूप में सहेजा गया का एक आकार संस्करण बनाने के लिए।
function update_attachment(){
global $post;
wp_update_attachment_metadata( $post->ID, $_POST['a_image'] );
if( !empty( $_FILES['a_image']['name'] )) { //New upload
require_once( ABSPATH . 'wp-admin/includes/file.php' );
$override['action'] = 'editpost';
$url = wp_handle_upload( $_FILES['a_image'], $override );
// $medium = image_make_intermediate_size( $uploaded_file['url'], 500, 400, true );
// $thumb = = image_make_intermediate_size( $uploaded_file['url'], 100, 100, true );
if ( isset( $file['error'] )) {
return new WP_Error( 'upload_error', $file['error'] );
}
$array_type = wp_check_filetype
$allowed_file_types = array('image/jpg','image/jpeg','image/gif','image/png');
$name_parts = pathinfo( $name );
$name = trim( substr( $name, 0, - ( 1 + strlen( $name_parts['extension'] )) ));
$type = $file['type'];
$file = $file['file'];
$title = $_POST['a_title'] ? $_POST['a_title'] : $name;
$content = $_POST['a_desc']
$post_id = $post->ID;
$attachment = array(
'post_title' => $title,
'post_type' => 'attachment',
'post_content' => $content,
'post_parent' => $post_id,
'post_mime_type' => $type,
'guid' => $url['url']
);
// Save the data
$id = wp_insert_attachment( $attachment, $_FILES['a_image'][ 'file' ]/*, $post_id - for post_thumbnails*/);
if ( !is_wp_error( $id )) {
$attach_meta = wp_generate_attachment_metadata( $id, $uploaded_file['url'] );
wp_update_attachment_metadata( $attach_id, $attach_meta );
}
update_post_meta( $post->ID, 'a_image', $uploaded_file['url'] );
}
}
किसी को भी मेरी मदद करने में सक्षम अंत में यह ठीक है तो यह काम करता है प्यार किया जाएगा। मैं इस बात को विकसित करने की कोशिश में कई अलग-अलग घंटों में कई अलग-अलग घंटे बिता चुका हूं और प्रलेखन बेकार है, और वास्तव में इसे करने के लिए कहीं भी कोई भी अच्छी पोस्ट नहीं है।
धन्यवाद