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>');
答
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主题。
答
它在文本模式下工作,但不适用于视觉(这里是“visuell”)。
它应该只是挑选正确的编号的权利,但无论我选择(#tinymce,tcepostcontent_ifr等)它不起作用。
非常感谢您的帮助!
干杯, Torsten
嘿那里,任何人都可以帮助吗?将不胜感激。 – Torsten