본문 바로가기
지속가능티끌/웹,워드프레스

워드프레스 테마의 functions.php 기능 이해, 코딩 방법 개념잡기

by i.got.it 2014. 10. 22.

 

 

 

개요

   
 

본 글은 워드프레스 테마의 구성파일 중 하나인 functons.php 의 기능 및 functions.php에 특정기능을 구현하는 코딩 흐름 간략히 정리한다.

 

 

 

 

 

1. 워드프레스 테마파일 중 functons.php

   
 

워드프레스의 테마의 구성파일들은 여러 개가 있고, 가장 간단하게 테마파일로써 워드프레스에서 인식되게 할려면 style.css와 index.php 만 있어도 된다. 이는 테마로써의 인식될 때 필요한 최소파일일 뿐 실제 테마로써의 기능을 충실히 수행하기 위해서는 포스트를 표현하는 single.php, 카테고리 표현하는 category.php, 페이지 표현하는 page.php 를 추가해야한다. 대부분이 정보를 웹에 표현하는 류들인데, functions.php는 웹에 표현하는 기능은 하지 않고, 플러그인 처럼 작동한다.

 

참고 : 플러그인에 대한 codex 상세설명 -> http://codex.wordpress.org/Plugins

 

functions.php 파일이 테마 폴더에 있다면 워드프레스는 자동으로 이 파일을 로딩하게 된다.

 

functions.php 의 기능적 역할.

 

1. 테마특성들(Sidebars, Navigation Menus, Post Thumnails, Post Formats, Custom Headers, Custom Background 등) 을 활성화 시킬 수 있다. ( Theme Features such as Sidebars, Navigation Menus, Post Thumbnails, Post Formats, Custom Headers, Custom Backgrounds )

 

2. 테마에서 사용되는 다른 템플릿 파일들에서 사용하는 함수 정의를 할 수 있다.

 

3. 테마의 옵션메뉴를 설정할 수 있다.

 

만일, 우리가 직접 테마를 만들었는데 functions.php 파일을 추가하지 않았다면 워드프레스 관리자 메뉴에서 외모부분에 위젯, 메뉴같은 항목이 보이지 않게 되고 당연히 이들 기능을 사용하지 못하게 된다.

 

아래그림이 테마에서 functions.php 를 구현하지 않은 경우 외모 부분에 보이는 메뉴항목이다. 보통의 테마들인 경우에는 다 있는 메뉴, 위젯등이 없음.



 

반면에, 테마에서 functions.php 가 테마파일 중에 있고, functions.php 내에서 위젯과 메뉴, 사용자 정의 헤더, 배경 등을 활성화 해야 "외모"에 항목이 등장하고 설정도 가능해진다.(아래그림)


 

functions.php 내부 코드를 작성하기 위해서는,

 

1. 워드프레스에서 기본 제공되는 테마의 functions.php 내부를 참조하고,

 

2. functions.php 는 기본적으로 플러그인과 동일한 기능이기 때문에, 코딩을 위한 상세한 정보는  function reference 에서 얻을 수 있다.

function reference codex제공정보 -> http://codex.wordpress.org/Function_Reference

플러그인에 대한 codex 상세설명 -> http://codex.wordpress.org/Plugins

 

functions.php 테마의 다른 템플릿(예: 포스트1개를 보이는 single.php)처럼 기능이 단순하지 않다. 여러 가지 기능을 하는 코드를 추가될 수 있는 곳이므로, 기능 구현하려는 특정 상황마다 코드 레퍼런스 뒤져서 functons.php 에서 구현하는 방식으로 작업해야한다.

 

예륻들어 사용자 정의 포스트를 만들어야 하는 경우 플러그인을 사용해도 되지만, 플러그인을 사용하지 않고 functons.php 에 직접 코딩하는 방법도 있다.

 

functions.php 에 코드 추가하여 사용자 정의 포스트 만드는 경우의 아래 예를 보면,

 

functions.php에서의 코드작업예 :

 

사용자정의 포스트 만들기. ->  http://igotit.tistory.com/75

위 링크의 글 내용을 보면, functions.php 에서 우리가 코드 추가하는 작업 과정이 어떤 흐름으로 이뤄지는지 알 수 있다.

 

functions.php에서 메뉴를 등록하는 코드예.

워드프레스 기본 테마 twenty fourteen 의 경우엔 아래와 같은 코드로 구현되어있다.

 

 // This theme uses wp_nav_menu() in two locations.
 register_nav_menus( array(
  'primary'   => __( 'Top primary menu', 'twentyfourteen' ),
  'secondary' => __( 'Secondary menu in left sidebar', 'twentyfourteen' ),
 ) );

 

 

이 코드를 보면 주요함수가 register_nav_menus 임을 알 수 있다. 이 함수에 대한 레퍼런스를 찾아서 용법을 파악하여 자신의 테마에 적용하면된다. 

register_nav_menus  함수에 대한 설명은

 http://codex.wordpress.org/Function_Reference 에서 찾아보면 http://codex.wordpress.org/Function_Reference/register_nav_menus  에서 상세히 보이고 있다.

메뉴추가에 대한 가이드 글은 http://codex.wordpress.org/Navigation_Menus  에서 볼 수 있다.

 

다른 위젯이나 헤더등도 위와 같은 방법론으로 샘플 코드 보고 이후 함수 상세설명 참조하여 본 인의 개발상황에 맞게 적용시킨다.

 

 

 

 

 

 

본 글이 포함된 통합 정리 글

 

WordPress 활용정보 정리 : http://igotit.tistory.com/23

 

 

///130.

댓글



 

비트코인




암호화폐       외환/나스닥/골드       암호화폐/외환/나스닥/골드 암호화폐/외환/나스닥/골드   암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)     롤오버 이자 없는 스왑프리계좌
( 스왑프리 암호화폐도 거래 가능 )    
MT4, MT5 , cTrader 모두 지원     FTMO 계좌 매매운용. MT4,MT5