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

  • Autenticação unificada para vários WP no mesmo servidor

    Já havia tentado sem sucesso usar as constantes CUSTOM_USER_TABLE e CUSTOM_USER_META_TABLE, criadas para proporcionar a possibilidade de autenticação única para várias instalações do WP (veja aqui). Mas recentemente tive que tentar novamente – com a diferença que agora tinha que conseguir! Depois de ler artigos e discussões a respeito, cheguei à conclusão triste que a…

  • Alterando sua senha de admin no WordPress via SQL

    Esqueceu sua senha de admin e precisa a alterar de uma maneira mais, digamos, radical ? Você pode usar este comando SQL para o alterar.. (pode ser via o phpmyadmin, por exemplo, ou console) UPDATE ‘wp_users’ SET ‘user_pass’ = MD5(‘nova_senha_aqui’) WHERE ‘wp_users’.’user_login’ = “login_do_admin”; Como você pode notar, apenas nova_senha_aqui e logins_do_admin devem ser alterados…

  • Como exibir parte da postagem apenas para usuários registrados

    É muito fácil e com esta dica você poderá exibir conteúdo exclusivo para usuários registrados em seu site WordPress, estimulando assim mais registros ! Já estou até pensando em aplicar em alguns projetos 🙂 Apenas adicione o seguinte código php no arquivo functions.php de seu tema: add_shortcode( ‘member’, ‘member_check_shortcode’ ); function member_check_shortcode( $atts, $content =…

  • Evite que seu WordPress de dicas aos invasores!

    Já reparou que na página de login de seu WordPress, quando você erra o login ou a senha o sistema avisa o que você errou ? Tudo bem, é um recurso até bacana, simpático… mas também é uma ótima dica para os invasores ! Com isso, eles poderão saber aonde estão errando na hora de…

  • A melhor forma de incluir o script JQuery no WordPress

    Vocês já repararam que o dashboard do WordPress usa JQuery ? Não ? Pois é, eu já havia reparado isso.. e já que o JQuery há é nativo do WordPress, não temos a necessidade de baixá-lo para uso de suas outras funcionalidades. Mediante isso, você deve estar se perguntando como se aproveitar disto e chamar…

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.