아래 코드를 functions.php 에 넣으면 됨.
add_action('enqueue_block_editor_assets', function() {
echo "
<script>
window.onload = function() {
document.addEventListener('paste', function(event) {
event.preventDefault();
const text = event.clipboardData.getData('text/plain');
document.execCommand('insertText', false, text);
});
}
</script>
";
});
코드는 enqueue_block_editor_assets 액션으로 구텐베르크 에디터에서만 발동시키고, onload 로 안전하게 불러온 뒤, 모든 붙여넣기 동작에 기본 기능을 제거하고 순수(text/plain) 텍스트만 집어넣게 함.
붙여넣기시 속성 제거하는 운영체제 기본 기능 과 흡사해 보일 수 있지만, 워드프레스 구텐베르크에서는 이 기능으로 붙여넣어도 문자열로 http://*, https://* 를 감지해 자체적으로 작동하는거라 이 기본 기능(Ctrl+Shift+V)으로 링크를 넣어도 막아지지 않음, 때문에 저 코드를 써야함.
링크 뿐만이 아니라 클립보드 내용 자체를 기본 텍스트로 넣는것, 이론적으로는 다른것도 막아져서 더 좋음.
실제로는 구텐베르크가 저 방식만 쓰는게 아니라 모든종류의 붙여넣기 태그가 다 막히진 않음, 어쨌든 목적달성
간단해 보이지만 이것 때문에 고통받고 먹히는걸 찾느라 고생한걸 생각하면 굉장히 유용한 코드.
워드프레스 embed block 제대로 비활성화 와 함께 쓰면 완벽함.
- 업그레이드 초강력 버전 워드프레스 https* 붙여넣기 링크변환 초강력 제거 Autohotkey