WordPress WYSIWYG编辑器

时间:2016-11-11 00:17:52

标签: jquery wordpress character-limit

我限制了可以作为特殊页面(事件提交页面)的内容添加的字符数。它在WordPress中的文本或代码模式下工作正常,但在我使用WYSIWYG编辑器时却没有。

知道如何更改它以便使用WordPress编辑器吗?

非常感谢你!

这是我正在使用的JS。

     // Set your character limit
     var count_limit = 1000;

     // Set the initial symbol count on page load
     $('#tcepostcontent-wc span').html($('#tcepostcontent').val());

     $('#tcepostcontent').on('keyup', function () {
      var char_count = $(this).val().length;
      var tcepostcontent = $(this).val();
      var text_remaining = count_limit - char_count;

     // Update the character count on every key up
     $('#tcepostcontent-wc span').html(text_remaining);

     if (char_count >= count_limit) {
       $('#tcepostcontent-wc').css('color', 'red');
       $(this).val(tcepostcontent.substr(1, count_limit));
     } else {
       $('#tcepostcontent-wc').css('color', null);
     }

     }).after('<p id="tcepostcontent-wc">Max 1000 are available <span>1000</span></p>');

2 个答案:

答案 0 :(得分:1)

WordPress的可视化编辑器是TinyMCE,他可以使用自定义API来解决这个问题。您应该使用以下来源,将其添加到一个小的自定义插件中,更改编辑器的tinyMCE.activeEditor.editorId的ID,激活它,然后完成。

add_filter( 'tiny_mce_before_init', 'wpse24113_tiny_mce_before_init' );
function wpse24113_tiny_mce_before_init( $initArray ) {

    $initArray['setup'] = <<<JS
[function( ed ) {
    ed.onKeyDown.add( function( ed, e ) {
        if ( tinyMCE.activeEditor.editorId == 'content-id' ) {

            var content = tinyMCE.activeEditor.getContent();
            var max = 300;
            var len = content.length;

            if (len >= max) {
              $( '#charNum' ).html( '<span class="text-error">You've got more then '+max+' characters!</span>' );
            } else {
             var charCount = max - len;

             $( '#charNum').html( charCount + ' characters left' );
            }
         }
    });

}][0]
JS;

    return $initArray;
}

源代码来自SE论坛WordPress主题中的this answer

答案 1 :(得分:0)

它适用于文本模式,但不适用于视觉效果(此处为“visuell”)。

这应该只是选择正确的id是正确的,但无论我选择什么(#tinymce,tcepostcontent_ifr等)它都不起作用。

非常感谢你的帮助!

干杯, 托