我是否使用右钩子来删除管理员TinyMCE上的快速标签?

时间:2014-11-13 作者:RachieVee

这与其说是客户的锻炼,不如说是客户的锻炼。

无论如何I\'m trying to disable the quicktags when you\'re on the dashboard 然后点击Comments > Edit Comment. 在该屏幕上,有一个带有quicktags的TinyMCE,textarea的id为“content”。

我知道在WordPress核心中,这可以在wp管理/编辑表单注释的第67行更改。php通过更改以下内容:

wp_editor( $comment->comment_content, \'content\', array( \'media_buttons\' => false, \'tinymce\' => false, \'quicktags\' => $quicktags_settings ) );
对此(quicktags设置为false):

wp_editor( $comment->comment_content, \'content\', array( \'media_buttons\' => false, \'tinymce\' => false, \'quicktags\' => false ) );
但我显然不想编辑核心,而是想通过过滤器/挂钩来实现这一点。这就是我所尝试的。

function disable_tinymce_quicktags_comments ( $args ) {
  ob_start();
  $comment = get_comment_to_edit( $comment_id );
  wp_editor( $comment->comment_content, \'content\', array( \'quicktags\' => false ) );
  $args = ob_get_contents(); 
  ob_end_clean();
  return $args;
}

add_filter( \'admin_init\', \'disable_tinymce_quicktags_comments\' );
Avar_dump $args的返回后没有显示任何内容,这是文本编辑器在编辑注释屏幕上显示此功能时的样子:

enter image description here

我是在试图实现不可能的目标,还是在使用错误的钩子?我仍在学习挂钩和PHP。有什么建议吗?谢谢。:-)

1 个回复
最合适的回答,由SO网友:doublesharp 整理而成

签出代码后,最好的方法是使用wp_editor_settings 筛选输入/wp-includes/class-wp-editor.php. 当你打电话的时候wp_editor() 它在内部拨打_WP_Editors::editor($content, $editor_id, $settings);. 此函数首先通过$settings 阵列通过parse_settings() 使用该过滤器。

add_filter( \'wp_editor_settings\', \'remove_editor_quicktags\', 10, 2 );
function remove_editor_quicktags( $settings, $id ){
    // $id will be \'content\' in your example
    // use it in an if or make it gone for everything...

    // use $pagenow to determine if you are on the edit comments page.
    global $pagenow; 
    if ( $pagenow === \'comment.php\' ){
        $settings[\'quicktags\'] = false;
    }
    return $settings;
}
注意-我刚刚意识到这个过滤器从WordPress 4.0开始是新的,所以您需要它或更新的过滤器来利用它。这也会影响admin上的所有TinyMCE实例

结束

相关推荐

TinyMCE中字符后面的文本被截断

我使用最新版本的wordpress(v3.9.2,台湾繁体中文),发现它不能显示这个中文单词,但其他中文单词可以正常显示。我只是在一篇帖子上使用这个词,在我将帖子保存到草稿后,所有内容都丢失了(变成空白,这个词也消失了)。我该怎么办?