
Com esse artigo, você vai aprender fazer um Upload via FrontEnd no WordPress!
Muitos usuários ficam nessa dúvida de como fazer um upload via front do WordPress e como salvar os dados no banco.
Portanto, esse script é bem simples e é só você adicionar ele no functions.php do seu tema.
function my_handle_attachment( $file_handler, $post_id ){ if ( $_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK ) __return_false(); require_once( ABSPATH . "wp-admin" . '/includes/image.php' ); require_once( ABSPATH . "wp-admin" . '/includes/file.php' ); require_once( ABSPATH . "wp-admin" . '/includes/media.php' ); $attach_id = media_handle_upload( $file_handler, $post_id ); if ( is_numeric( $attach_id ) ) { update_post_meta( $post_id, '_thumbnail_id', $attach_id ); } return $attach_id; }
O script vai pegar o seu campo e o ID da postagem e vai salvar os dados.
Vamos supor que: você está usando o wp_insert_post, ele retorna o ID do cadastro, então, assim que você tiver esse ID, você pode usar na função… e o $file_handler você vai passar o campo… Vamos supor que seu campo se chame file_logo, vamos ver o HTML disso no tema.
<form method="POST" action="?" enctype="multipart/form-data"> <input type="hidden" name="enviar" value="imagem" /> Imagem: <input type="file" name="file_logo" id="file_logo" accept="image/*" /> <button type="submit">Salvar Imagem</button> </form>
Agora, pode pode adicionar esse código abaixo no strong>functions.php do seu tema também.
if ( $_POST['enviar'] ){ $new_post_id = wp_insert_post(array( 'post_title' => Imagem para um Post'', 'post_type' => 'noticias', 'post_status' => 'publish', )); if ( $_FILES['file_logo']['name'] ) { foreach ( $_FILES as $file => $array ){ if ( $file == 'file_logo' ){ $new_upload_id = my_handle_attachment( $file, $new_post_id ); update_user_meta( $new_post_id, 'nome_do_campo_personalizado_de_imagem', $new_upload_id ); } } } }
Pronto, com isso você consegue enviar uma imagem para o CPT Notícias o Upload via FrontEnd no WordPress
Referências:
https://developer.wordpress.org/reference/functions/media_handle_upload/
https://developer.wordpress.org/reference/functions/update_post_meta/
Veja Também:
Criar senhas automáticas com PHP