Như quý anh chị đều biết wordpress quản lý file qua mục media, câu hỏi đặt ra là tôi đang viết một plugin và cần upload một logo của một tổ chức. Vậy toàn bộ code cho vấn đề này là gì. Sau đây cùng tôi tìm hiểu nhé
Chúng ta sẽ hình dung việc upload logo qua ảnh dưới đây:
Trước hết là code html cho nút add/replace
1 2 3 4 |
<?php $src_logo =wp_get_attachment_image_src($organization_logo_upload,'full'); ?> <div id="rich_snippet_pro_organization_logo_upload_logo_show"><img src="<?php echo $src_logo[0]; ?>" /></div> <input type="hidden" name="rich_snippet_pro[organization_logo_upload]" id="rich_snippet_pro_organization_logo_upload" value="<?php echo $organization_logo_upload; ?>" /> <button type="button" class="btn btn-primary btn-sm rich_snippet_pro_organization_logo_upload_logo_trigger"><span class="fa fa-upload mr-1"></span><?php _e( 'Add/Replace', RICHSNIPPETPRO_TEXT_DOMAIN); ?></button> |
Và code js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
//upload logo's organization var file_frame; $(document).on( 'click', '.rich_snippet_pro_organization_logo_upload_logo_trigger', function( event ){ event.preventDefault(); // If the media frame already exists, reopen it. if ( file_frame ) { file_frame.open(); return; } // Create the media frame. file_frame = wp.media.frames.downloadable_file = wp.media({ title: richsnippetpro_admin_vars.upload, multiple: false }); // When an image is selected, run a callback. file_frame.on( 'select', function() { attachment = file_frame.state().get('selection').first().toJSON(); //alert(attachment.id); jQuery('#rich_snippet_pro_organization_logo_upload').val(String(attachment.id)); jQuery('#rich_snippet_pro_organization_logo_upload_logo_show img').attr('src', attachment.url ); }); // Finally, open the modal. file_frame.open(); }); |
Và nhớ gọi wp_enqueue_media(); trong enqueue scripts
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress