Akhirnya aku !! mendapatkan hal ini Saya sudah mencoba sekitar 12 kali untuk membuat dan 12 cara yang berbeda, tetapi akhirnya berhasil, ... semacam.
Saya membuat metabox khusus untuk mengunggah dan melampirkan gambar ke posting, dan itu tidak mengharuskan Anda untuk menggunakan pengunggah media kotak tebal yang mengerikan yang dibangun ke dalam WP. Aku benci benda itu. Tidak, apa yang saya lakukan hanyalah sekelompok input (judul, deskripsi, file), yang juga dapat Anda tiru, untuk menambahkan lampiran tambahan jika Anda mau. Jadi, Anda mengisi kolom, pilih gambar untuk diunggah, dan menyimpan konsep atau menerbitkan posting. Setelah ada lampiran yang ditambahkan ke posting, metabox akan menampilkan bidang input, bersama dengan gambar pratinjau dari gambar terlampir untuk setiap lampiran yang Anda tambahkan. Bidang judul dan deskripsi digunakan untuk menghasilkan data meta file, tidak ada yang disimpan sebagai post_meta, yang saya tahu. Itulah semua yang saya dapatkan sejauh ini.
Saya perlu membuatnya sehingga ketika Anda menyimpan / mempublikasikan posting, mengunggah upload / membuat file lampiran, itu akan membuat tiga ukuran gambar seperti pengunggah wp default, thumbnail, menengah, besar, dan menjaga gambar ukuran penuh juga . Jika itu mungkin, entah bagaimana. Jika tidak, saya ingin menggunakannya add_image_size()
untuk membuat / menentukan ukuran khusus baru, dan menghasilkannya seperti itu, setelah mengunggah.
Saya tidak yakin fungsi mana yang paling ideal untuk digunakan dalam kasus ini, mungkin image_make_intermediate_size()
fungsinya akan lebih baik, atau wp_create_thumbnail()
atau wp_crop_image()
... siapa tahu !!
Saya tidak tahu bagaimana cara melakukan itu, jika saya perlu menjalankan wp_handle_upload()
fungsi untuk masing-masing, atau mungkin sesuatu yang melibatkan wp_generate_attachment_metadata()
fungsi. Ini membingungkan saya karena 3 ukuran gambar harus dikaitkan sebagai varian dari lampiran yang sama, dan bagaimana cara melakukannya.
Saya telah menjelajahi web, membaca sumber dari setiap media terkait file / upload / gambar wp, dan bermain dengan hampir setiap fungsi yang ada untuk hal-hal upload media dan tidak dapat menemukan bagaimana WP menciptakan 3 ukuran gambar di mana saja, atau bagaimana melakukan ini diriku.
Di wp-include / media.php image_resize()
fungsinya terlihat seperti yang terbaik karena memang seharusnya demikian. Saya hanya tidak tahu apa yang saya lewatkan atau coba lakukan untuk kehidupan saya, tetapi salah membuat gambar mini.
Inilah fungsi kerja saya yang melakukan wp_handle_upload()
hal - hal dan hal-hal, tetapi juga perlu membuat jempol 100px, dan membuat versi ukuran gambar yang maks-lebar seperti 500px, dan disimpan sebagai file baru dari yang diunggah.
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'] );
}
}
Siapa pun yang dapat membantu saya akhirnya memperbaiki ini sehingga berfungsi dengan baik akan dicintai. Saya telah menghabiskan begitu banyak waktu yang tak terhitung jumlahnya dan berulang kali mencoba untuk mengembangkan hal ini dan dokumentasinya payah, dan tidak ada posting yang bagus di mana pun tentang bagaimana melakukannya.
Terima kasih