以下のWPSnippsのコードは抜粋文字カウンターを提供しますが、私は代わりに単語を数えたいのですが。これを行う方法について誰かが考えを持っていますか?
// Excerpt character count
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');
@ siouxfan45あなたの質問を間違って読んで申し訳ありません!
これが正しい答えです。コードを少し改善するだけで、単語を数えることができます。
これら2行を変更するだけです。
jQuery("#excerpt_counter").val(jQuery("#excerpt").val().length);
これに:
jQuery("#excerpt_counter").val(jQuery("#excerpt").val().split(/\S\b[\s,\.\'-:;]*/).length - 1);
"しない"、 "だ"、 "したい"、 "しない"などの単一引用符を含む単語は2つとして数えられます。それらを1つのWordとして数えたい場合は、.split()
を次のように変更します。
.split(/\S+\b[\s,\.\'-:;]*/)
私はこの時間が正しいことを願っています!
この素晴らしい答えを実装している間(ありがとう)、元のコードで使用されていた奇妙な非アクティブフィールドよりも数字を表示するのに適した方法だと思いました。これはテキストエリアのすぐ下に "Word count:$ Word_count"だけを表示します。以下のコードは、収縮を1つのWordとしてカウントする(しない)ためのKBRckrのコードも組み込んでいます。
<?php
/**
* Use jQuery to add a Word counter to the excerpt box
*
* Should attach to all post screens and indicate the number of words just below the #excerpt textarea
*/
function gv_excerpt_Word_count_js() {
echo '
<script>jQuery(document).ready(function(){
jQuery("#postexcerpt #excerpt").after("Word Count: <strong><span id=\'excerpt-Word-count\'></span></strong>");
jQuery("#excerpt-Word-count").html(jQuery("#excerpt").val().split(/\S+\b[\s,\.\'-:;]*/).length - 1);
jQuery("#excerpt").keyup( function() {
jQuery("#excerpt-Word-count").html(jQuery("#excerpt").val().split(/\S+\b[\s,\.\'-:;]*/).length - 1);
});
});</script>
';
}
add_action( 'admin_head-post.php', 'gv_excerpt_Word_count_js');
add_action( 'admin_head-post-new.php', 'gv_excerpt_Word_count_js');
?>