2016-12-08 1 views
0

tinymce 편집기에서 단추를 제거하는 방법에 대한 수많은 예제가 있지만 Javascript에서 추가하는 사용자 지정 편집기에서이 작업을 수행하려고합니다.기본이 아닌 WordPress 편집기의 tinymce 편집기에서 단추를 제거하는 방법

function myplugin_tinymce_buttons($buttons) { 
    //Remove the text color selector 
    $remove = 'forecolor'; 

    //Find the array key and then unset 
    if (($key = array_search($remove, $buttons)) !== false) 
    unset($buttons[$key]); 

    return $buttons; 
} 

여기에는 편집기 ID에 대한 언급이 없습니다. 사용자 정의 편집기에서만이 작업을 수행하려면 어떻게해야합니까? 나는 Wordpress post page에서 보여지는 메인 에디터에서 아무 것도 바꾸고 싶지 않다.

+0

를 참조

function removeButton(editorId, pluginName, commandName) { var htmlEditorDiv = document.getElementById(editorId).previousSibling; var editor = tinymce.get(editorId); var buttonDiv = htmlEditorDiv.querySelectorAll('.mce-i-' + pluginName.toLowerCase())[0].parentElement.parentElement; buttonDiv.style.display = "none"; buttonDiv.firstChild.onclick = function() { //Even if the button is invisible, it's better //removing the command associated to the button click just in case }; } 

명령의 목록 :

이 코드를 테스트하지 않았지만 함수는 다음과 같이해야 하는가? 당신이 이해하지 못하는 것 같아요. 코드에서 첫 번째로 단추가 제거되지 않지만 '텍스트 색상 제거'가 매우 다르다는 것을 알았습니다. 또한 이해한다면, 배열의 버튼을 받기 때문에 편집기 ID를이 함수에 전달할 필요가 없습니다. 그래서 좋은 버튼을 선택하는 일은 전에 만들어졌습니다. 페이지에 하나 이상의 문자가 있다면 두 개의 다른 TinyMCE 편집기의 버튼 배열을 전달할 수도 있습니다. 그리고 마지막으로, 함수의 이름은 플러그인 내부에 있음을 암시합니다. myplugin_tinymce_buttons' –

+0

@ JérômeMével 'forecolor'는 버튼의 이름 인 것 같습니다. 내가 인용 한 함수는 "add_filter ('mce_buttons', 'myplugin_tinymce_buttons');" 요구. 구체적으로, 다음 명령을 사용하여 JS에서이 사용자 정의 편집기를 만듭니다. tinyMCE.execCommand ("mceAddEditor", false, captionId); tinyMCE.execCommand ('mceAddControl', false, captionId); 어디서 이런 말을 해야할지 모르겠다. 코드의 인용 부분은 .. https://codex.wordpress.org/Plugin_API/Filter_Reference/mce_buttons,_mce_buttons_2,_mce_buttons_3,_mce_buttons_4 – srvy

+0

이 함수를 사용하면 '$ buttons' 배열을 만들어서 함수에 넘기는 것입니다. 편집기 ID는 중요하지 않습니다. 하지만이 [링크] (https://status301.net/remove-buttons-from-the-wordpress-rich-text-editor-toolbar/)에 따르면이 함수는 문제가 있습니다 ... –

답변

1

초기화 전에 TinyMCE 구성을 으로 바꾸는 것이 가장 좋고 깨끗한 방법입니다.

다른 질문이 있으면 my answer을 참조하십시오. 여기에서 읽기 전용 모드로 편집기를 설정 한 다음 몇 개의 단추 만 사용할 수 있습니다. 어디에서이 코드를 찾았어요 this page

+0

여기에 pluginName에 사용할 내용이 확실하지 않습니다 ... – srvy

+0

플러그인 목록은 [여기] (https://www.tinymce.com/docs/plugins/)에서 사용할 수 있습니다. 그래서'pluginName'은 플러그인 식별자에 해당합니다. [전체 예제의 소스 코드] (http://codepen.io/tinymce/pen/NGegZK)에서'plugins' 배열을 살펴볼 수도 있습니다. 참고 :이 함수는 버튼에 대해 작동하지만 메뉴에서 이동할 경우 플러그인에 계속 액세스 할 수 있습니다. 예를 들어 완전한 기능을 갖춘 예제 설정에서,'code' 플러그인은'tools' 아래에서도 사용할 수 있습니다.하지만 당신의'myplugin_tinymce_buttons' 함수가 똑같은 문제를 가지고있을 것입니다. –

+0

당신은 이미 커맨드 목록에 대한 답안에서 링크에있는 플러그인 목록을 가지고 있습니다. 방금 일부 명령이 '코어'에 기본적으로 포함되어 있다는 것을 알았습니다. 내 코드는 실제로이 버튼에서 테스트되지 않았습니다. 다른 버튼을 먼저 사용해보십시오. 예를 들어 플러그인 이름으로'code'를, 명령 이름으로'mceCodeEditor'를 사용합니다. ({: "#"+ captionId, 플러그인 : "링크", 메뉴 : {}, 도구 모음 : 선택 [ "취소 굵은 이탤릭체 링크를 다시" ] }) –

관련 문제