반응형 워드프레스 스킨… isset(), require_once(), wp() 함수 및 ABSPATH, WPINC… wp-blog-header.php 파일 소스 분석…
반응형 워드프레스 스킨 소스를 분석하며 그 속에 사용된 PHP, HTML, 자바스크립트 및 각종 함수 등을 공부할 목적으로 지난 시간에는 index.php 파일을 살펴보았다.
이번 시간에 다룰 wp-blog-header.php 파일의 내용도 다행스럽게(?) 부담스럽지 않을 정도로 간단하다.
<?php
if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . ‘/wp-load.php’ );
wp();
require_once( ABSPATH . WPINC . ‘/template-loader.php’ );
}
주석을 제외하곤 위의 내용이 전부다.
‘if ( 조건 ) { 내용 }’이라는 형태의 간단한 if 조건문이 사용되었다.
‘조건’이 참이면 ‘내용’을 실행하라는 의미다. 위 코드에서는 부정을 나타내는 ‘!’가 있기에 isset($wp_did_header)의 값이 거짓(0)이면 내용이 실행된다.
이번 시간에는 ‘isset() 함수, require_once() 함수, wp() 함수, ABSPATH, WPINC‘의 사용법과 의미 등을 공부할 것이다.
isset() 함수는 입력된 변수에 값이 설정되어 있는지 그 여부를 확인해 준다.
만약, 값이 존재한다면 ‘True’ 값을 리턴하고, 존재하지 않는다면 ‘False’ 값을 리턴한다.
isset() 함수는 변수가 어떤 값이든 설정되어 있기만 하면 true를 반환한다.
<?php
$val1;
$val2 = “”;
if( isset($val1) ) {
echo “isset( val1 ) : TRUE”;
} else {
echo “isset( val1 ) : FALSE”;
}
echo “<br/>”;
if( isset($val2) ) {
echo “isset( val2 ) : TRUE”;
} else {
echo “isset( val2 ) : FALSE”;
}
?>
위 코드에서 ‘val1’은 변수값이 설정되어 있지 않은 상태이고, ‘val2’는 변수값이 공백(빈 문자열)으로 설정되어 있다.
따라서 결과는 isset( val1 )은 ‘FALSE’를 반환하고, isset( val2 )은 ‘TRUE’를 반환한다.
반면, empty() 함수는 변수값이 빈 문자열, 0, 문자열 “0”, null, false 등이면 모두 ‘빈 문자열’로 간주한다.
위 코드에서 isset() 대신 empty() 함수를 적용해보면 empty( val1 ), empty( val2 ) 모두 ‘TRUE’ 값을 반환하는 것을 볼 수 있다.
require_once() 함수는 지정한 외부 문서를 한 번 불러오는 것으로 지난 index.php 파일 분석할 때 require() 함수를 공부하며 잠시 언급했었다.
wp() 함수는 wp-includes/functions.php 파일 안에 정의되어 있으며, 워드프레스 query를 셋업한다. 그리고, 결과 값을 반환하지 않는다.
function wp( $query_vars = ” ) {
global $wp, $wp_query, $wp_the_query;
$wp->main( $query_vars );
if ( !isset($wp_the_query) )
$wp_the_query = $wp_query;
}
이후부터 소스 분석이 점점 더 복잡해지고 어려워질 것 같은 느낌이 물씬 풍겨온다.
정신 바짝 차리고 하지 않으면 어느 순간 주눅 들고 질려서 포기할지도…
이번 시간에는 wp() 함수의 존재 확인만 해두고 세부 내용들은 오늘 주제를 벗어나는 범위이기에 다음 기회에 하기로 한다.
‘ABSPATH’와 ‘WPINC’는
wp-load.php 파일 안에 정의되어 있다.
define( ‘ABSPATH’, dirname(__FILE__) . ‘/’ );
define( ‘WPINC’, ‘wp-includes’ );
‘ABSPATH’와 ‘WPINC’는 경로를 나타내는 값을 가지는 상수로 정의되어 있다.
index.php, define(), require(), dirname() 함수
wp-load.php 분석, error_reporting(), file_exists(), wp_fix_server_vars() 함수
이것으로 wp-blog-header.php 파일 소스 분석 및 공부를 마치고, 다음에는 wp-load.php 파일 소스를 분석하고 공부할 예정이다.