나는 마침내있다!! 12 가지 방법으로 12 가지 방법을 시도했지만 마침내 작동하게되었습니다.
게시물에 이미지를 업로드하고 첨부하기 위해 사용자 정의 메타 박스를 만들었으며 WP에 내장 된 끔찍한 thickbox 미디어 업 로더를 사용할 필요가 없습니다. 나는 그게 싫어. 아니요, 내가 한 일은 입력 그룹 (제목, 설명, 파일)입니다. 복제 할 수 있으며 원하는 경우 추가 첨부 파일을 추가 할 수 있습니다. 따라서 필드를 채우고 업로드 할 이미지를 선택한 다음 초안을 저장하거나 게시물을 게시하십시오. 게시물에 첨부 파일이 추가되면 메타 박스에 추가 한 각 첨부 파일에 대한 첨부 이미지의 미리보기 이미지와 함께 입력 필드가 표시됩니다. 제목 및 설명 필드는 파일 메타 데이터를 생성하는 데 사용되며 내가 아는 post_meta로 아무것도 저장되지 않습니다. 그것은 지금까지 내가 지금까지 얻은 모든 것입니다.
게시물을 저장 / 게시 할 때 첨부 파일을 업로드 / 생성 할 때 기본 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-includes / 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'] );
}
}
내가 마침내 이것을 고칠 수 있도록 도와 줄 수있는 사람이라면 제대로 작동 할 것입니다. 나는이 일을 개발하기 위해 수많은 다른 시간을 엄청나게 많은 시간을 보냈고 문서가 빨라지고 그것을 수행하는 방법에 대한 좋은 게시물이 실제로 없습니다.
감사