Upload via FrontEnd no WordPress

PHP & WordPress

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

Autor da Postagem

Ted k'

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Close