좋은소식 우편함

워드프레스에서 자바스크립트를 사용할 수 있는 방법

정보전달자- 2024. 9. 17.

안녕하세요! 워드프레스에서 자바스크립트를 사용하는 방법에 대해 자세히 설명해드리겠습니다. 워드프레스는 PHP로 작성된 콘텐츠 관리 시스템(CMS)이지만, 프론트엔드에서 자바스크립트를 활용하여 다양한 기능을 구현할 수 있습니다. 자바스크립트를 워드프레스에 추가하는 방법은 여러 가지가 있으며, 아래에서 각 방법을 상세하게 안내해드리겠습니다.

 


1. wp_enqueue_script 함수를 사용하여 자바스크립트 추가하기

워드프레스에서 자바스크립트를 추가하는 가장 표준적인 방법은 wp_enqueue_script 함수를 사용하는 것입니다. 이 방법을 사용하면 워드프레스의 로딩 순서와 의존성 관리를 활용할 수 있어, 스크립트 간 충돌을 방지하고 성능을 최적화할 수 있습니다.

1.1. 스크립트 등록 및 큐잉

wp_enqueue_script 함수를 사용하여 스크립트를 등록하고 큐에 추가할 수 있습니다. 다음은 기본적인 사용 예시입니다.

function my_custom_scripts() { wp_enqueue_script( 'my-script-handle', get_template_directory_uri() . '/js/my-script.js', array('jquery'), '1.0.0', true ); } add_action( 'wp_enqueue_scripts', 'my_custom_scripts' );
  • my-script-handle: 스크립트를 식별하기 위한 고유한 핸들 이름입니다.
  • get_template_directory_uri() . '/js/my-script.js': 스크립트 파일의 경로입니다.
  • array(): 스크립트의 의존성을 지정합니다. 예를 들어 array('jquery')로 설정하면 jQuery가 먼저 로드됩니다.
  • '1.0.0': 스크립트의 버전입니다.
  • true: 스크립트를 </body> 태그 직전에 로드하도록 지정합니다. false로 설정하면 <head> 안에서 로드됩니다.

1.2. 함수의 위치

위의 코드는 일반적으로 테마의 functions.php 파일이나 플러그인의 메인 파일에 추가합니다.

1.3. 의존성 관리

예를 들어, jQuery에 의존하는 스크립트를 추가하려면:

function my_custom_scripts() {
    wp_enqueue_script( 'my-script-handle', get_template_directory_uri() . '/js/my-script.js', array('jquery'), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_custom_scripts' );
 

이렇게 하면 워드프레스가 자동으로 jQuery를 먼저 로드합니다.


2. 테마의 functions.php 파일을 통해 스크립트 등록하기

2.1. functions.php 파일 찾기

  • 워드프레스 관리자 대시보드에서 외모 > 테마 파일 편집기로 이동합니다.
  • 우측에서 functions.php 파일을 선택합니다.

2.2. 스크립트 등록 코드 추가

functions.php 파일에 다음과 같은 코드를 추가합니다.

function enqueue_my_custom_script() { wp_enqueue_script( 'custom-script', get_stylesheet_directory_uri() . '/js/custom-script.js', array(), '1.0.0', true ); } add_action( 'wp_enqueue_scripts', 'enqueue_my_custom_script' );

2.3. 스크립트 파일 생성 및 업로드

  • 테마 폴더 내에 js 폴더를 생성합니다.
  • custom-script.js 파일을 생성하고 원하는 자바스크립트 코드를 작성합니다.
  • FTP나 호스팅 파일 관리자 등을 통해 해당 파일을 업로드합니다.

3. 플러그인을 사용하여 자바스크립트 추가하기

플러그인을 사용하면 코딩 없이도 자바스크립트를 추가할 수 있습니다. 다음은 대표적인 플러그인입니다.

3.1. Header and Footer Scripts

  • 설치 방법:
    • 워드프레스 관리자 대시보드에서 플러그인 > 새로 추가로 이동합니다.
    • Header and Footer Scripts를 검색하여 설치하고 활성화합니다.
  • 사용 방법:
    • 설정 > Header and Footer Scripts로 이동합니다.
    • Scripts in Header 또는 Scripts in Footer 영역에 자바스크립트 코드를 <script> 태그 없이 입력합니다.

3.2. Insert Headers and Footers

  • 설치 방법:
    • 플러그인 > 새로 추가에서 Insert Headers and Footers를 검색하여 설치하고 활성화합니다.
  • 사용 방법:
    • 설정 > Insert Headers and Footers로 이동합니다.
    • Scripts in Header 또는 Scripts in Footer 영역에 자바스크립트 코드를 입력합니다.

3.3. Custom CSS and JS

  • 설치 방법:
    • 플러그인 > 새로 추가에서 Custom CSS and JS를 검색하여 설치하고 활성화합니다.
  • 사용 방법:
    • 관리자 대시보드에서 Custom CSS & JS > Add JS Code로 이동합니다.
    • 제목과 코드를 입력하고, 위치(Location)를 선택한 후 저장합니다.

4. 페이지나 포스트에 직접 자바스크립트 삽입하기

워드프레스의 기본 설정에서는 보안상의 이유로 페이지나 포스트에 자바스크립트 코드를 직접 삽입하는 것을 허용하지 않습니다. 그러나 다음과 같은 방법으로 가능합니다.

4.1. 사용자 역할 편집을 통한 권한 부여

  • 주의: 이 방법은 보안 위험을 초래할 수 있으므로 추천하지 않습니다.

4.2. 플러그인 사용

  • Shortcode Exec PHP: 이 플러그인을 사용하면 숏코드 내에서 PHP와 자바스크립트 코드를 실행할 수 있습니다.
  • Raw HTML: HTML 및 자바스크립트 코드를 그대로 사용할 수 있도록 도와줍니다.

4.3. HTML 블록 사용 (구텐베르그 에디터)

  • 포스트나 페이지 편집 시, 블록 추가 버튼을 클릭하고 커스텀 HTML 블록을 선택합니다.
  • 자바스크립트 코드를 <script> 태그와 함께 입력합니다.

주의: 일부 호스팅이나 보안 설정에서는 <script> 태그를 제거할 수 있습니다.


5. 위젯이나 메뉴를 통해 자바스크립트 추가하기

5.1. 텍스트 위젯 사용

  • 외모 > 위젯에서 텍스트 위젯을 사이드바나 푸터 등에 추가합니다.
  • 텍스트 위젯의 내용을 HTML로 변경하고 자바스크립트 코드를 입력합니다.

5.2. 플러그인 사용

  • Enhanced Text Widget: 텍스트 위젯에서 PHP와 자바스크립트를 실행할 수 있도록 해줍니다.

6. 자식 테마를 사용하여 자바스크립트 추가하기

테마 업데이트 시 커스터마이징한 내용이 사라지는 것을 방지하기 위해 자식 테마를 사용하는 것이 좋습니다.

6.1. 자식 테마 생성

  • 테마 폴더에 새로운 폴더를 생성하고, style.css와 functions.php 파일을 만듭니다.
  • style.css에 테마 정보와 부모 테마를 지정합니다.
/*
Theme Name: 부모테마이름 Child
Template: 부모테마폴더명
*/

6.2. 자식 테마의 functions.php에 스크립트 등록

 
function child_theme_scripts() { wp_enqueue_script( 'child-custom-script', get_stylesheet_directory_uri() . '/js/child-custom-script.js', array(), '1.0.0', true ); } add_action( 'wp_enqueue_scripts', 'child_theme_scripts' );

7. 자바스크립트 추가 시 고려사항 및 베스트 프랙티스

7.1. wp_enqueue_script 사용의 중요성

  • 충돌 방지: 스크립트 간의 의존성을 관리하여 충돌을 예방합니다.
  • 성능 최적화: 불필요한 스크립트 로드를 방지하고, 필요한 경우에만 로드합니다.
  • 버전 관리: 스크립트의 버전을 지정하여 캐싱 문제를 해결합니다.

7.2. 스크립트 로드 위치

  • 헤드(head) 또는 푸터(footer): 스크립트를 로드할 위치를 지정하여 페이지 로딩 속도를 최적화합니다.
  • true로 설정하면 푸터에서 로드되고, false는 헤드에서 로드됩니다.

7.3. 네임스페이스와 충돌 방지

  • 전역 변수나 함수의 사용을 최소화하고, 즉시 실행 함수(IIFE)를 사용하여 스코프를 제한합니다.
(function($) {
// 자바스크립트 코드
})(jQuery);

7.4. 보안 고려사항

  • 신뢰할 수 있는 소스: 외부 스크립트를 사용할 때는 신뢰할 수 있는 CDN이나 소스를 사용합니다.
  • 사용자 입력 검증: 사용자로부터 입력받은 데이터를 처리할 때는 반드시 검증하여 XSS 공격을 방지합니다.

7.5. 디버깅과 로그

  • 브라우저의 개발자 도구를 활용하여 콘솔 로그와 디버깅을 수행합니다.
  • 오류 메시지를 확인하여 문제를 해결합니다.

8. 결론

워드프레스에서 자바스크립트를 사용하는 방법은 다양하며, 목적과 상황에 따라 적합한 방법을 선택하시면 됩니다. wp_enqueue_script 함수를 사용하는 것이 가장 권장되는 방법이며, 이를 통해 스크립트의 로드 순서와 의존성을 관리할 수 있습니다. 플러그인을 사용하면 코딩 지식이 없어도 자바스크립트를 추가할 수 있지만, 보안과 성능을 고려하여 신중하게 사용해야 합니다.

자바스크립트를 추가하면서 문제가 발생하거나 도움이 필요하시면 언제든지 말씀해주세요!

댓글