限制编辑者或管理员在WP管理编辑器窗口中输入的内容

时间:2016-06-05 作者:Kabangaba

我想获得一些帮助,以限制编辑或管理员在WP admin editor窗口中输入的内容,包括文字和类别,例如,在政治类中发布时,我的限制为400字,在体育类中为450字,在娱乐类中为500字等。。

1 个回复
SO网友:thebigtine

检查长度并限制它是没有问题的,但是当你在保存帖子时设置类别时,为每个类别设置不同的限制会有点棘手。以下是您需要采取的步骤:

检查$post var强制要求用户选择一个类别,查看用户选择的类别设置自定义类别元数据,其中包含该类别的最大长度,然后仅在较小且未引发错误的情况下提交,但正如我所说,设置一般限制相当简单。下面是一个简单的PHP和javascript片段,用于检索页面上的当前编辑器,计算编辑器中的字符数,并在字符数超过某个限制时显示警告。使用显著的警告而不是自动截断内容可以提供更好的可用性。你可以把它做成plugin 如果没有,请确保使用child theme.

I haven\'t tested this, but it should work fine.

add_action( \'admin_print_footer_scripts\', \'check_textarea_length\' );

function check_textarea_length() {
    ?>
    <script type="text/javascript">
        jQuery( document ).ready( function($) {
            var editor_char_limit = 50;

            $(\'#post-status-info\').append(\'<span class="word-count-message">Reduce word count!</span>\');

            tinyMCE.activeEditor.onKeyUp.add( function() {
                // Strip HTML tags, WordPress shortcodes and white space
                editor_content = this.getContent().replace(/(<[a-zA-Z\\/][^<>]*>|\\[([^\\]]+)\\])|(\\s+)/ig,\'\'); 

                if ( editor_content.length > editor_char_limit ) {
                    $(\'#post-status-info\').addClass(\'toomanychars\');
                } else {
                    $(\'#post-status-info\').removeClass(\'toomanychars\');
                }
            });
        });
    </script>

    <style type="text/css">
        .word-count-message { font-size:1.1em; display:none; float:right; color:#fff; font-weight:bold; margin-top:2px; }
        .toomanychars { background:red; }
        .toomanychars .word-count-message { display:block; }
    </style>
    <?php
}

If using this in production, remember to move both Javascript and CSS into files and use appropriate admin hooks for adding them only on pages that display the editor you need.

相关推荐

在触发“The Plugin Generated x Characters of Underular Output of Underful Output During Activate”错误时查看输出

我正在开发一个插件,在创建新表时遇到了一些困难。我得到了“插件在激活期间生成了x个字符的意外输出”错误。是否有办法查看实际错误?我认为这个过程涉及重定向,因此我没有看到实际的错误输出。我有所有的错误报告和登录,但仍然一无所获。