{"id":27983,"date":"2021-05-29T18:16:00","date_gmt":"2021-05-29T15:16:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27983"},"modified":"2021-10-18T04:06:15","modified_gmt":"2021-10-18T01:06:15","slug":"como-definir-imagens-em-destaque-programaticamente-no-wordpress","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/como-definir-imagens-em-destaque-programaticamente-no-wordpress\/","title":{"rendered":"Como definir imagens em destaque programaticamente no WordPress"},"content":{"rendered":"<p>Voc\u00ea est\u00e1 procurando definir a imagem em destaque usando o c\u00f3digo do WordPress? \u00c0s vezes, voc\u00ea se depara com uma tarefa em que precisa escrever um trecho de c\u00f3digo que deve definir a miniatura da postagem para uma postagem, p\u00e1gina ou tipos de postagem personalizados. Neste artigo, estudamos como definir imagens em destaque programaticamente no WordPress.<\/p>\n<p>O WordPress oferece muitos recursos \u00fateis para sites. Um deles \u00e9 a Imagem em destaque, tamb\u00e9m conhecida como Post Thumbnail. Imagem em destaque \u00e9 uma imagem representativa para postagem, p\u00e1gina ou tipo de postagem personalizada.<\/p>\n<h3>Forma regular de definir a miniatura da postagem<\/h3>\n<p>Podemos enviar imagens em destaque para postagens ou p\u00e1ginas espec\u00edficas clicando no link &#8216;Definir imagem em destaque&#8217;. Ele abrir\u00e1 um uploader de m\u00eddia WordPress onde voc\u00ea pode escolher uma imagem existente ou fazer o upload da nova imagem.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20420-6081eee231f82.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20420-6081eee231f82.png\" alt=\"Como definir imagens em destaque programaticamente no WordPress\" ><\/a><\/p>\n<p>\u00c9 uma maneira simples de definir a miniatura da postagem no WordPress. As mesmas etapas devem ser seguidas para as p\u00e1ginas e tipos de postagem.<\/p>\n<p>Mas, como mencionado no in\u00edcio, o objetivo deste artigo \u00e9 escrever um c\u00f3digo que defina a miniatura da postagem sem seguir as etapas acima.<\/p>\n<h3>Definir imagem em destaque programaticamente<\/h3>\n<p>Para este tutorial, estou criando um formul\u00e1rio onde um usu\u00e1rio pode selecionar uma imagem e esta imagem ser\u00e1 definida como uma miniatura de postagem para o ID de postagem especificado. Coloque o c\u00f3digo abaixo em seu arquivo de modelo.<\/p>\n<pre><code>&lt;form method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label&gt;&lt;?php _e('Select Image:', 'Your text domain here');?&gt;&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"image\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"upload_file\" value=\"Submit\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Este c\u00f3digo exibir\u00e1 o formul\u00e1rio com entrada de arquivo e o bot\u00e3o de envio.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20420-6081eee2ac3dd.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20420-6081eee2ac3dd.png\" alt=\"Como definir imagens em destaque programaticamente no WordPress\" ><\/a><\/p>\n<p>Agora, com o clique do bot\u00e3o enviar, precisamos definir uma imagem em destaque. Portanto, escreva o c\u00f3digo abaixo no <code>functions.php<\/code>arquivo de temas ativos .<\/p>\n<pre><code>function fn_set_featured_image() {\n\u00a0\u00a0\u00a0\u00a0if (isset($_POST['upload_file'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$upload = wp_upload_bits($_FILES[\"image\"][\"name\"], null, file_get_contents($_FILES[\"image\"][\"tmp_name\"]));\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! $upload_file['error']) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$post_id = YOUR_POST_ID_HERE; \/\/set post id to which you need to set featured image\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = $upload['file'];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$wp_filetype = wp_check_filetype($filename, null);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$attachment = array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'post_mime_type' =&gt; $wp_filetype['type'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'post_title' =&gt; sanitize_file_name($filename),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'post_content' =&gt; '',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'post_status' =&gt; 'inherit'\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$attachment_id = wp_insert_attachment( $attachment, $filename, $post_id );\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! is_wp_error( $attachment_id)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0require_once(ABSPATH. 'wp-admin\/includes\/image.php');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$attachment_data = wp_generate_attachment_metadata( $attachment_id, $filename );\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0wp_update_attachment_metadata( $attachment_id, $attachment_data );\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0set_post_thumbnail( $post_id, $attachment_id );\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n}\nadd_action('init', 'fn_set_featured_image');<\/code><\/pre>\n<p>Aqui, estou usando o m\u00e9todo <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_upload_bits\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_upload_bits()<\/a> que carrega a imagem e retorna o caminho absoluto e relativo. Temos que seguir um caminho absoluto gerado e passar para os pr\u00f3ximos m\u00e9todos <code>wp_check_filetype()<\/code>, como <code>wp_insert_attachment()<\/code>, e <code>wp_generate_attachment_metadata()<\/code>para processamento adicional.<\/p>\n<p>Depois disso, se voc\u00ea for para a tela de edi\u00e7\u00e3o de uma postagem espec\u00edfica, ver\u00e1 a miniatura da postagem na se\u00e7\u00e3o Imagens em destaque. Isso significa que definimos com \u00eaxito a imagem apresentada de forma program\u00e1tica.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/carregar-imagem-usando-a-biblioteca-a-prova-de-balas-em-php\/\" title=\"Carregar imagem usando a biblioteca \u00e0 prova de balas em PHP\">Carregar imagem usando a biblioteca \u00e0 prova de balas em PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-registrar-tamanhos-de-imagem-personalizados-e-redimensionar-imagens-existentes-no-wordpress\/\" title=\"Como registrar tamanhos de imagem personalizados e redimensionar imagens existentes no WordPress\">Como registrar tamanhos de imagem personalizados e redimensionar imagens existentes no WordPress<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-fazer-upload-e-compactar-imagens-no-laravel\/\" title=\"Um guia para fazer upload e compactar imagens no Laravel\">Um guia para fazer upload e compactar imagens no Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste tutorial, voc\u00ea encontrar\u00e1 um script que define imagens em destaque programaticamente no WordPress. Voc\u00ea pode definir a imagem em destaque para postar, p\u00e1gina, postagem personalizada.<\/p>\n","protected":false},"author":1,"featured_media":21673,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[417,613],"tags":[848],"class_list":["post-27983","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diversos","category-uncategorized-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27983","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=27983"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27983\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21673"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27983"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27983"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}