WordPress所见即所得编辑器的字符限制

问题描述:

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

任何想法如何改变它,所以它也可以使用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>'); 
+0

嘿那里,任何人都可以帮助吗?将不胜感激。 – Torsten

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

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; 
} 

该来源是从this answer在SE论坛的WordPress主题。

+0

感谢您的这一点,但我不知道如何使用它。我已经有一个名为“字数和限制”的插件,它可以在所有帖子和页面的后端工作,也可以用于社区事件插件,但在前端使用插件时不会。任何想法? – Torsten

+0

在前端,这是一个足够的差异。我不知道你在前端使用了什么编辑器。如果您也使用TinyMCE,那么它也应该可以工作。但是,您的插件可能会检查它是否只在管理区域中有效。 – bueltge

+0

这是一个好点 - 欢呼声,我会检查出来:-) – Torsten

它在文本模式下工作,但不适用于视觉(这里是“visuell”)。

它应该只是挑选正确的编号的权利,但无论我选择(#tinymce,tcepostcontent_ifr等)它不起作用。

非常感谢您的帮助!

干杯, Torsten