워드프레스 블로그나 웹사이트에서 코드 블록을 사용할 때, 방문자가 간단히 코드를 복사할 수 있도록 “카피 버튼”을 추가하면 매우 편리합니다. 이 글에서는 HTML, CSS, JavaScript를 활용하여 워드프레스 코드 블록에 카피 버튼을 추가하는 방법을 순서대로 자세히 설명합니다. 초보자도 쉽게 따라할 수 있으니, 한 단계씩 진행해 보세요.
목차
1. 코드 블록 스타일 정의하기
카피 버튼과 코드 블록을 보기 좋게 스타일링하려면 CSS를 추가해야 합니다. 아래의 코드를 복사해서 사용 중인 워드프레스 테마의 style.css 파일이나 추가 CSS(Customizer)에 삽입하세요.
/* 코드 블록 스타일 */
pre {
position: relative;
background-color: #f4f4f4;
border: 1px solid #ddd;
padding: 16px;
border-radius: 8px;
overflow: auto;
}
/* 카피 버튼 스타일 */
.copy-btn {
position: absolute;
top: 8px;
right: 8px;
background: #0073aa;
color: white;
border: none;
padding: 6px 12px;
border-radius: 4px;
cursor: pointer;
font-size: 12px;
}
.copy-btn:hover {
background: #005d8f;
}
이 CSS는 코드 블록에 적당한 여백과 테두리를 추가하고, “카피 버튼”을 오른쪽 상단에 배치하도록 설정합니다.
2. HTML 구조 작성하기
워드프레스 글 작성 화면에서 HTML 블록을 이용해 아래와 같은 구조를 사용하세요.
<pre>
<code>
console.log("Hello, WordPress!");
</code>
<button class="copy-btn">Copy</button>
</pre>
위의 코드는 코드 블록(<code>
)과 “카피 버튼”을 함께 표시합니다. 버튼을 클릭하면 해당 코드 블록의 텍스트가 클립보드에 복사됩니다.
3. JavaScript로 카피 기능 구현하기
버튼 클릭 시 코드를 클립보드에 복사하도록 JavaScript를 추가해야 합니다. 다음 코드를 복사해 footer.php 파일의 <script>
태그 안에 삽입하거나, Custom JavaScript 플러그인을 활용하여 추가하세요.
document.addEventListener("DOMContentLoaded", function () {
const copyButtons = document.querySelectorAll(".copy-btn");
copyButtons.forEach((button) => {
button.addEventListener("click", function () {
const codeBlock = this.previousElementSibling; // 버튼 바로 위의 <code> 요소 가져오기
const textToCopy = codeBlock.textContent;
navigator.clipboard.writeText(textToCopy).then(() => {
this.textContent = "Copied!";
setTimeout(() => (this.textContent = "Copy"), 2000);
}).catch((err) => {
console.error("Copy failed", err);
this.textContent = "Failed!";
});
});
});
});
이 스크립트는 클립보드 API를 사용하여 코드를 복사하며, 복사 성공 시 버튼 텍스트가 “Copied!”로 변경되고 2초 후 “Copy”로 복원됩니다.
4. 코드 블록에 버튼 자동 추가
매번 HTML에서 버튼을 추가하기 번거롭다면, 아래 JavaScript를 사용해 모든 <pre><code>
블록에 자동으로 카피 버튼을 추가할 수 있습니다.
document.addEventListener("DOMContentLoaded", function () {
const codeBlocks = document.querySelectorAll("pre > code");
codeBlocks.forEach((block) => {
const button = document.createElement("button");
button.className = "copy-btn";
button.textContent = "Copy";
const pre = block.parentNode;
pre.style.position = "relative";
pre.appendChild(button);
button.addEventListener("click", function () {
const textToCopy = block.textContent;
navigator.clipboard.writeText(textToCopy).then(() => {
this.textContent = "Copied!";
setTimeout(() => (this.textContent = "Copy"), 2000);
}).catch((err) => {
console.error("Copy failed", err);
this.textContent = "Failed!";
});
});
});
});
이 코드를 추가하면 HTML을 수정하지 않아도 모든 <pre><code>
블록에 “카피 버튼”이 동적으로 생성됩니다.
5. 최종 결과 확인
모든 설정이 완료되면 워드프레스 사이트에서 코드 블록이 올바르게 표시되고, 카피 버튼이 동작하는지 확인하세요. 문제 발생 시 브라우저 개발자 도구(F12)를 열어 콘솔에서 오류를 확인할 수 있습니다.
결론
이 방법을 활용하면 워드프레스 블로그나 웹사이트에서 코드 블록에 “카피 버튼”을 손쉽게 추가할 수 있습니다. 사용자 경험을 개선할 수 있을 뿐만 아니라, 방문자가 코드를 더욱 쉽게 활용할 수 있게 되어 사이트의 가치를 높이는 데 기여할 것입니다.
지금 바로 위 코드를 따라 적용해 보세요!
WPCode 플러그인으로 워드프레스 커스터마이징: Google Analytics, CSS, 헤더/푸터 코드 추가 방법