Como solicitar imagem destacada como obrigatória?

Muitos temas de WordPress, sobretudo páginas iniciais e de arquivos/categorias, são altamente dependentes de imagens destacadas para apresentarem uma interface atrativa. Se você tem um tema assim, ou desenvolveu para um cliente que é assim, então você não pode permitir que sua postagem ou a de seu cliente fiquem sem imagem destacada, ou com uma imagem dizendo ‘Sem imagem destacada’.

Tenho um site assim, o GugaAlves.net, um blog pessoal que tem tais características, e cansei de esquecer de colocar uma imagem destacada e só notar depois. Por este motivo, trago uma solução para tal problema 🙂

Passo 1 – Criando a função

Adicione o script abaixo em seu arquivo functions.php

add_action( 'pre_post_update', 'request_featured_post' );

function request_featured_post($post_ID) {
$post = get_post($post_ID);
$request_publish_test = isset($_REQUEST['publish']);
$request_under_status_test = isset($_REQUEST['_status']) && $_REQUEST['_status'] == 'publish';
if ( $post->post_type == 'post'
  &&( $request_publish_test || $request_under_status_test )
  && !has_post_thumbnail($post_ID) ) {
  wp_die( 'Você não pode publicar um post sem imagem destacada!' );
  }
}

add_action( 'admin_enqueue_scripts', 'rfi_admin_js' );
function rfi_admin_js($hook) {
if( $hook != 'post.php' && $hook != 'post-new.php' )
return;
wp_register_script( 'rfi-admin-js', get_template_directory_uri().'/js/publish_featured_post.js''), array('jquery'));
wp_enqueue_script( 'rfi-admin-js' );
}

Passo 2 – Criando o arquivo javascript

Crie um arquivo chamado publish_featured_post.js e salve na pasta js em seu tema, com o conteúdo abaixo (se não tiver tal pasta, pode criar sem problemas).

jQuery(document).ready(function($) {

    if ($('body').find("#nofeature-message").length===0) {
		$('h2').after('<div id="nofeature-message"></div>');
    }

	if ($('body').find("#categorydiv").length===1) {
		setInterval(detectWarnFeaturedImage, 5000);
		detectWarnFeaturedImage();
	}

    function detectWarnFeaturedImage() {
		if( $('#postimagediv').find('img').length===0 ) {
			$('#nofeature-message').addClass("error").html('<p><strong>Este post está sem nenhuma imagem destacada.</strong> Por favor, adicione uma para poder publicar seu post.</p>');
			$('#publish').attr('disabled','disabled');
		} else {
			$('#nofeature-message').remove();
			$('#publish').removeAttr('disabled');
		}
	}

});

Posts Similares

  • WordPress filters – Lista completa de filtros!

    WordPress filters – Lista completa de filtros!

    Esta lista de dicas explora um conceito fundamental no desenvolvimento do WordPress: filtros! No WordPress, os filtros permitem que os desenvolvedores interceptem e modifiquem dados à medida que uma página do WordPress está sendo carregada, antes de enviá-los ao navegador ou salvá-los no banco de dados. Você pode ler mais sobre filtros neste artigo em…

  • Como listar os últimos usuários registrados no seu blog?

    Se você tem um blog em que é permitido o registro de novos usuários (sejam eles autores, contribuidores, etc), você pode mostrar em sua sidebar (ou qualquer outra área escolhida por você) os últimos a terem se registrados, bastando apenas incluir o código abaixo no local desejado. Vale destacar que onde sê lê LIMIT 10…

  • WordPress Tutorial: Usando a Shortcode API do WordPress

    Pois é, a API (Application Programming Interface ou Interface de Programação de Aplicativos, ou algo assim…) para usar shortcodes está disponível desde a versão 2.5 e foi um grande ganho para os desenvolvedores de plugins e temas. Mas apesar disso ainda é muito pouco comentada.

  • Utilizando o operador de módulo no loop

    Na maior parte das linguagens de programação existe um operador específico, por vezes esquecido pelos programadores, para operações de módulo. Seu símbolo, na maioria das linguagens, é a % (o que pode causar alguma confusão para os novatos). O PHP não foge à regra e também possui este operador de módulo, sendo o seu símbolo…

  • Opa, novo post para revisão!

    Acho que o WordPress já deveria vir com essa funcionalidade por padrão, mas não vem =\ Quando uma pessoa não tem permissão de publicar um post diretamente em um site/blog com WordPress, esse post precisa ir para revisão. Mas o administrador, ou a pessoa que deve aprovar o post não tem ideia que existe um…

Deixe um comentário

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

2 Comentários

  1. Olá, muito obrigado pela sua dica. Funcionou perfeitamente no meu thema, sou iniciante em wordpress e estou aprendendo muito com auxilio do seu site.

    Grata, Loola.