是否有申请wp_editor函数内部字符限制的方法吗?(Is there a way to appl

2019-09-22 17:06发布

我试图找出如何将此代码资源箱前端提交表单上合并,但我需要它被限制在一定的数量的字符。

<?php wp_editor( get_option('resource'), 'resource', array('textarea_name' => 'resource', 'class'=>'requiredField', 'textarea_rows'=>'6','id'=>'resource' ,'onkeyup'=>'countChar(this)','media_buttons' => false)  );?><?php if(isset($_POST['resource'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['resource']); } else { echo $_POST['resource']; } } ?>

此代码检查,如果该字段为空:

<?php if(isset($_POST['resource'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['resource']); } else { echo $_POST['resource']; } } ?>

我怎样才能让wp_editor函数内部的检查? 我想这能允许并简化我的HTML资源箱子里面给用户...

这是我使用的JavaScript函数(“的onkeyup” =>“countChar(本)”)内,但它不工作。

我在这里坠落?

Answer 1:

我改变了布莱恩·金特里的解决方案一点点我的需求和它工作得很好。 这里是我的代码,如果你需要一个类似的功能。

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


Answer 2:

首先,你需要改正你的wp_editor的实施。 您的代码应阅读是这样的:

<?php wp_editor( get_option('resource'), 'resource', array('textarea_name' => 'resource', 'editor_class'=>'requiredField', 'textarea_rows'=>'6', 'media_buttons' => false)  );?>

需要注意的是该wp_editor函数不接受参数的JavaScript方法,并且有对“editor_class”而不是“阶级”本身就是一个参数。

接下来,你需要在keyup事件(或keydown事件)到TinyMCE的编辑器绑定。 这需要在编辑器的初始化工作要做。 这其他Q&A帮我找到解决这个给你。 你需要非常多添加类似以下到您的functions.php文件:

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=='resource') || (tinyMCE.activeEditor.editorId=='the_other_editor_id_you_want_to_limit') {
                        countChar(tinyMCE.activeEditor.getContent());
                     }
                });
            }][0]
            JS;
    return $initArray;
    }

这将改变TinyMCE的初始化添加事件为您服务。 当事件被触发(按一个键)的功能将检查活动编辑器的ID,看它是否是其字符数要限制的编辑之一。 然后,它抓住编辑的内容,并将其传递到您的countChar功能。



文章来源: Is there a way to apply characters limit inside wp_editor function?