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

  • 3 ferramentas eficientes para migração de banco de dados no WordPress

    Um dos desafios da migração de um site WordPress é localizar e substituir uma URL no banco de dados e as atualizar para o novo endereço do site. São ainda mais links para atualizar em uma instalação multisite, e você pode estar trabalhando com um banco de dados maior do que um blog convencional. Hoje…

  • Como traduzir temas e plugins?

    Quem lida com o WordPress provavelmente já traduziu um tema, simplesmente buscando por strings nos arquivos e substituindo pelo equivalente em português. Isso é simples (até certo ponto) e eficaz, mas o WP oferece um sistema de tradução nativo, baseado no GNU Gettext. Verdade que muitos desenvolvedores não dão a menor bola para isso, mas…

  • Loops personalizados no WordPress

    Em muitas situações precisamos modificar a query natural do WordPress, para eliminar categorias ou posts da listagem, para exibir um tipo de post específico, enfim para várias finalidades. Se você quer, por exemplo, listar apenas posts das categorias 2 e 6 ou esconder os psts da categoria 15… não há um link natural para essas…

  • Como colocar Gravatar nos comentários do WordPress 2.7

    Como vi que algumas pessoas tem chegado ao blog através de buscas, tentando descobrir como adicionar as imagens de Gravatar ao seu blog WordPress, resolvi escrever esta dica. Pra começo de conversa, o Gravatar só irá aparecer em seu site se este estiver corretamente configurado para isso. Para tal, vá em wp-admin -> Configurações ->…

  • O que é e como utilizar o WP CLI

    O WP CLI é uma interface de linha de comando que permite que os usuários gerenciem seus sites WordPress a partir do prompt de comando. Escrito em PHP e sob licença MIT, você pode o utilizar para uma série de tarefas: Upgrades podem ser realizados, backups podem ser gerados, novos posts podem ser publicados e…

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.