Você está procurando uma maneira de adicionar um contador de caracteres à metabox de resumo? Embora provavelmente exista um plugin para isso, criamos um snippet de código rápido que você pode usar para adicionar um contador de caracteres à metabox de resumo no WordPress.
Instruções:
Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:
function excerpt_count_js(){
echo '<script>jQuery(document).ready(function(){
jQuery("#postexcerpt .handlediv").after("<div style=\"position:absolute;top:0px;right:5px;color:#666;\"><small>Excerpt length: </small><input type=\"text\" value=\"0\" maxlength=\"3\" size=\"3\" id=\"excerpt_counter\" readonly=\"\" style=\"background:#fff;\"> <small>character(s).</small></div>");
jQuery("#excerpt_counter").val(jQuery("#excerpt").val().length);
jQuery("#excerpt").keyup( function() {
jQuery("#excerpt_counter").val(jQuery("#excerpt").val().length);
});
});</script>';
}
add_action( 'admin_head-post.php', 'excerpt_count_js');
add_action( 'admin_head-post-new.php', 'excerpt_count_js');
Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar / colar trechos de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site como: 9 melhores plugins de eventos para WordPress e como criar formulários de optin impressionantes para WordPress.
Olá, é possível fazer isso para o editor de conteúdo?
Tente isto, para os comentários/respostas:
function excerpt_count_js(){ if ( ‘post’ == get_post_type() ) { echo ‘jQuery(document).ready(function(){ jQuery(“textarea#comment”).after(“Tamanho do excerto: caractere(s).”); jQuery(“#excerpt_counter”).val(jQuery(“#comment”).val().length); jQuery(“#comment”).keyup( function() { jQuery(“#excerpt_counter”).val(jQuery(“#comment”).val().length); }); });’; } return; } add_action( ‘comment_form_before’, ‘excerpt_count_js’);
[…] 6. Adicione um contador de caracteres à metabox de resumo […]
Funciona muito bem!
Ao colocar o código na condição "if ('page' != get_post_type())", as páginas do WordPress funcionam perfeitamente. Talvez isso possa ajudar alguém.
function excerpt_count_js(){
if (‘page’ != get_post_type()) {
echo ‘jQuery(document).ready(function(){ jQuery(“#postexcerpt .handlediv”).after(“Tamanho do excerto: / 500 caractere(s).”); jQuery(“span#excerpt_counter”).text(jQuery(“#excerpt”).val().length); jQuery(“#excerpt”).keyup( function() { if(jQuery(this).val().length > 500){ jQuery(this).val(jQuery(this).val().substr(0, 500)); }
jQuery("span#excerpt_counter").text(jQuery("#excerpt").val().length);
}); });’; } } add_action( ‘admin_head-post.php’, ‘excerpt_count_js’); add_action( ‘admin_head-post-new.php’, ‘excerpt_count_js’);
Obrigado por esta ótima solução. É possível fazer a mesma coisa para a caixa de título? Obrigado.
Você pode dar uma olhada neste trecho, fiz algumas alterações de CSS e corrigi algumas coisas.
http://pastebin.com/gsFF8pc7
Muito obrigado por este! A propósito, o trecho funciona bem até mesmo na página de resumo do produto do WooCommerce.
Obrigado por este! Fiz algumas modificações para remover HTML e preparar os resumos para o Twitter:
function excerpt_count() { echo 'jQuery(document).ready(function($){ $("#excerpt").after(''); function excerpt_count() { var count = $("#excerpt").val(); $("#excerpt_counter").text($(""+count+"").text().length); } excerpt_count(); $("#excerpt").keyup( function() { excerpt_count(); }); }); '; }
add_action( 'admin_head-post.php', 'excerpt_count'); add_action( 'admin_head-post-new.php', 'excerpt_count');Espero que seja útil para alguém.
Obrigado pelo snippet. Em relação à questão das páginas: o script gera um erro de javascript ao editar uma página: “TypeError: Cannot read property ‘length’ of undefined”, nesta linha: jQuery(“#excerpt_counter”).val(jQuery(“#excerpt”).val().length);. Como presumo que em uma página um resumo não é usado, mas o hook ainda é chamado e o script é incorporado no cabeçalho, então não há lugar chamado ‘#postexcerpt .handlediv’ para a consulta inserir depois e, portanto, nenhum valor de comprimento para avaliar. Mas você pode colocar uma instrução if em torno das últimas 3 linhas do jQuery, algo como: “if (jQuery(“#excerpt_counter”).length > 0){ // últimas 3 linhas de código aqui }” o que pode corrigir isso.
Esta solução resolveu todos os problemas de JS que eu estava tendo. As opções de tela eram irritantes, mas um problema muito maior era a escala de imagem retornando NaN e tornando-a inutilizável. Tudo facilmente resolvido adicionando a instrução if, muito obrigado!
Eu queria compartilhar uma captura de tela para esclarecer o problema com as páginas. Espero que isso ajude. https://www.dropbox.com/s/xhkv718cjcj5ep9/excerpt-counter.jpg
muito estranho, vou investigar isso, desculpe demorei tanto, o disqus parou de me enviar e-mails com novos comentários.
Estou tendo o mesmo problema com o AJAX não funcionando com páginas. Alguém encontrou uma solução?
[…] um pequeno truque útil que encontrei no wpsnipp.com recentemente. Este snippet permite adicionar um contador de caracteres à caixa de resumo na edição do seu post […]
add_action( ‘COMMENT?, ‘excerpt_count_js’);
Podemos adicionar comentários?
você pode atribuir isso a qualquer item que conheça o ID em vez do campo de resumo.
Deveria ser uma parte padrão do Wordpress. Obrigado… Eu o modifiquei um pouco para atender às minhas necessidades, substituindo as instruções de Resumo pela Contagem de Caracteres. Quem precisa dessas coisas bobas de novato, afinal…
function tpl_excerpt_count(){ ?> jQuery(document).ready(function(){ var label = 'Contagem de caracteres: '; jQuery('#postexcerpt p').html(label + jQuery('#excerpt').val().length); jQuery('#excerpt').keyup(function(){ jQuery('#postexcerpt p').html(label + jQuery('#excerpt').val().length); }); });
Ahhh muito legal, nada mal a ideia, ainda bem que pude ajudar!
foi muito útil, muito obrigado.
De nada, aproveite o trecho.
Obrigado pelo trecho! Funciona bem em posts, mas em páginas tenho os mesmos problemas que Eric e B.J. – alguma ideia do que pode causar isso?
Abraços, Thomas.
Olá TL, testei as coisas e não tenho problemas com o wordpress 3.3 e não recebo erros, você acha que pode ser outro plugin que você está executando? O que eu faria seria desativar todos os plugins que você está executando, ver se você ainda tem problemas, se não, então ative cada um deles, verificando qual plugin é a causa.
Olá Kevin,
Tentei com todos os plugins desativados, mas sem mudança…
Não é tão ruim porque eu uso principalmente posts, não páginas, mas ainda assim. Se você encontrar ou ouvir algo, por favor, me avise!
Obrigado
TL
você está executando a versão mais recente do wordpress?
sim, testei com a 3.3 e a nova versão 3.3.1…!
(De alguma forma não consigo responder à sua postagem, apenas à minha…)
Existe alguma solução para o problema com páginas? Não consigo mais usar as opções de tela e os botões de ajuda em páginas.
Olá Marxo, testei as coisas no Firefox com o wordpress 3.2.1 e não tive problemas com o menu de ajuda ou outros menus administrativos funcionando. Eu uso jQuery(document).ready(); para não causar conflitos. Você poderia tentar este método e ver se funciona para você,
http://advantcomp.com/jquery-conflicts-and-wordpress-how-to-include-your-own-jquery-scripts-the-correct-way/
Embora possa ser outro plugin que você esteja executando, então eu desativaria temporariamente para testar as coisas.
Obrigado pelo seu tempo. )
Tentei o código atualizado. Tudo está ok se você escolher Páginas > Opções de Tela / Ajuda. Os problemas começam se você escolher Páginas > Página de Exemplo > Opções de Tela / Ajuda.
Instalação nova do WordPress 3.2.1
Sem plugins
Tema Twenty Eleven
Obrigado por esta ótima função. Mas você pode me ajudar a adicionar contadores de caracteres às caixas de meta de texto deste plugin do WordPress (More Fields): http://wordpress.org/extend/plugins/more-fields/ ?
Olá Anthony, você só precisa mudar cada instância de ‘#excerpt’ para o ID do campo que você deseja que o editor TinyMCE seja exibido.
Tenho este trecho (ótimo recurso, aliás) no meu site há alguns dias e acabei de descobrir que (o jQuery) estava em conflito com o jQuery em execução na seção Páginas do admin. Nenhum menu ou qualquer coisa AJAX estava funcionando e isso afetou apenas as Páginas (sem Posts ou Tipos de Postagem Personalizados).
Mais alguém encontrou esse problema?
Oi Eric,
Vou dar uma olhada e ver se obtenho os mesmos resultados,
Eu adoraria ver a capacidade de incluir isso no editor real em vez de para os excertos. Tenho procurado o dia todo por algo que conte os caracteres dentro do editor, não do excerto. Mas isso é simplesmente brilhante. Agora vou desmontá-lo e ver se consigo fazê-lo funcionar dentro do editor.
Muito obrigado por esta contribuição fantástica!
Legal, fico feliz que você goste do trecho! Deve ser bem fácil configurar as coisas, você pode mudar #excerpt para #content e isso já exibirá a contagem, mas ainda exibirá o contador dentro da área do título do excerto. Na linha 03, basta mudar “#postexcerpt .handlediv” para direcionar o novo local onde você deseja que o contador seja exibido e pronto…
Você é meu novo melhor amigo 🙂 Muito obrigado! Na verdade, eu já fiz isso, só estou tendo dificuldade em colocá-lo onde quero, mas vou descobrir 😉 Você é demais, cara. Obrigado por esta contribuição fantástica! 🙂
Obrigado, sem problemas, aproveite o site e não se esqueça de nos seguir no Facebook ou Twitter, eu posto diariamente.
Mais uma vez, obrigado. Um pouco de edição e terá um bom lugar onde é necessário. Obrigado!
Segui você no Facebook e no Twitter. Ansioso para ler seus tweets! São dias como este que realmente aprecio pessoas que compartilham suas descobertas em blogs. Obrigado mais uma vez por compartilhar este trecho!
Ótimo, aproveite os trechos.
Brilhante! Geralmente, pesquisar no Google por coisas de WP me traz um monte de plugins que fazem o que preciso e depois tentam ser um canivete suíço também, mas este trecho resolveu um problema com precisão cirúrgica. Obrigado! Pena que não há um link do Flattr aqui, isso definitivamente teria valido a pena ser 'flattrado'.
@google-de31253397522fac9cf8619290aa2a8f:disqus fico feliz que gostou do trecho! Em relação ao Flattr, ainda não adicionei um, mas adiciono novos trechos ao wpsnipp.com todos os dias, então tenho certeza que terei em breve.
Exatamente o que eu estava procurando. Muito obrigado. Se eu pudesse limitar quantos caracteres são permitidos na caixa (para preservar a aparência correta do resumo), também seria ótimo. No entanto, por enquanto, simplesmente escrevi ao lado do contador de caracteres. (NÃO exceda 320 caracteres)
Por padrão, o resumo é truncado em 55 caracteres, então nunca deve atingir esse comprimento. No entanto, você pode usar este trecho e definir o número de caracteres para o resumo.
http://wpsnipp.com/index.php/excerpt/custom-excerpt-length/
Lembre-se que isso não impedirá que eles digitem mais texto no campo do resumo.
(Traduzido por programa)
Esta dica é realmente fantástica!, Acho que pode até incentivar os usuários a usar este recurso do sistema que é sempre esquecido, mas muito útil.
Também ajuda porque, por padrão, acho que há um limite de 55 caracteres para o resumo.
A metabox de trecho aparece apenas nas páginas de postagem nova e edição de postagem do Admin, então o trecho pode ser limitado a estas usando os hooks ‘admin_head-post.php’ e ‘admin_head-post-new.php’ em vez de ‘admin_head’, que adiciona o trecho a todas as páginas do Admin.
Bom ponto Andrew, é um desperdício carregar em todas as páginas do admin. Farei uma atualização no trecho, obrigado por apontar isso.