wp-activate.php 분석, die(), is_object(), empty() 함수, echo와 printf 차이, 워드프레스 자체 함수 등..

워드프레스.. wp-activate.php 파일.. PHP.. die(), is_object(), empty() 함수.. 그외 WordPress 자체 함수들.. echo와 printf 차이..

 

이번 시간에는 워드프레스 파일 중 wp-activate.php 파일의 내용을 공부하기로 했다. 그리곤, 끊임없이 내 마음을 뒤흔드는 심마와 싸워야 했다. ^^;

 

파일 내의 소스를 분석하며 만나는 함수마다 그 뒤를 쫓아서 이 파일에서 저 파일로 찾아 헤매고 돌아다니다 보니 점점 맨붕 상태에 빠져 들어갔다.

 

결국 “에라 모르겠다”며 공부하던 걸 덮어 버렸다가 다시 하기를 수차례 반복… ^^;

 

우쨌든 이렇게라도 조금씩 진도를 나가다 보니 드디어 wp-activate.php 파일도 마무리 짓게 되었다. 휴~ 에겅 힘들다.. ㅠㅠ

 

소스를 보다 보니 ‘echo‘와 ‘printf‘가 나온다. 둘 다 화면에 출력하는 명령어인데 도대체 이 둘 사이에 차이는 뭘까?

 

$var ? printf(‘TRUE’) : printf(‘FALSE’); // 정상 출력

$var ? echo ‘TRUE’ : echo ‘FALSE’; // 오류 발생

 

위의 내용은 삼항 연산자를 사용한 구문으로 $var가 ‘참’이면 ‘TRUE’를 출력하고, ‘거짓’이면 ‘FALSE’를 출력하라는 것이다.

 

두 개의 구문을 각각 실제로 실행시켜 보니 printf를 사용한 구문은 정상적으로 출력이 되었지만 echo를 사용한 구문은 오류가 발생하는 것을 볼 수 있었다.

 

만약 echo를 사용해서 정상적으로 출력되게 하려면 다음과 같이 바꿔주면 된다.

 

echo $var ? ‘TRUE’ : ‘FALSE’;

 

이런 차이가 발생하는 이유는 printf는 함수처럼 사용될 수 있지만 echo는 그렇지 못하기 때문이라고 한다.

 

<script type=”text/javascript”>
  var key_input = document.getElementById(‘key’);
  key_input && key_input.focus();
</script>

 

위 내용을 보면 document.getElementById(‘key’)라고 나오는데, 이것은 현재 HTML 문서(document)에서 id 값이 key인 요소를 가지고 오라(getElementId(‘key’))는 의미다.

 

focus()는 해당 요소에 포커스를 주라는 의미다.

 

흠.. 이외에는 각종 함수를 제외하곤 별다른 것은 없는 것 같다.

 

is_multisite() 함수는 워드프레스 자체 함수로서 ‘wp-includes/load.php‘ 파일 안에 정의되어 있다. 어떤 인수도 받지 않으며 BOOLEAN 값을 리턴한다.

 

wp_redirect(), get_userdata() 함수는 워드프레스 자체 함수로서 ‘wp-includes/pluggable.php‘ 파일 안에 정의되어 있다.

 

PHP에서 die() 함수는 현재 실행 중인 스크립트를 즉시 종료하고 메시지를 남기려 할 때 사용한다. die(“남길 메시지”) 형태로 사용하면 된다.

 

PHP에서 is_object()함수는 주어진 변수가 객체인지 확인한다. 변수가 object면 TRUE를, 아니라면 FALSE를 반환한다.

 

do_action(), add_action() 함수는 워드프레스 자체 함수로서 ‘wp-includes/plugin.php‘ 파일 안에 정의되어 있다.

 

get_header(), wp_lostpassword_url(), get_footer() 함수는 워드프레스 자체 함수로서 ‘wp-includes/general-template.php‘ 파일 안에 정의되어 있다.

 

PHP에서 empty() 함수는 변수값의 존재 여부에 따라 ‘참 혹은 거짓’을 반환한다.

 

_e(), esc_attr_e() 함수는 워드프레스 자체 함수로서 ‘wp-includes/l10n.php‘ 파일 안에 정의되어 있다.

 

network_site_url(), network_site_url(), network_home_url() 함수는 워드프레스 자체 함수로서 ‘wp-includes/link-template.php‘ 파일 안에 정의되어 있다.

 

wpmu_activate_signup() 함수는 워드프레스 자체 함수로서 ‘wp-includes/ms-functions.php‘ 파일 안에 정의되어 있다.

 

is_wp_error(), get_error_code(), get_error_data(), get_error_message() 함수는 워드프레스 자체 함수로서 ‘wp-includes/class-wp-error.php‘ 파일 안에 정의되어 있다.

 

get_blogaddress_by_id() 함수는 워드프레스 자체 함수로서 ‘wp-includes/ms-blogs.php‘ 파일 안에 정의되어 있다.

 

wp-load.php 분석, strpos(), header() 함수 등

 

역시 프로그래밍 언어를 혼자서 독학한다는 것이 마음 먹은 것처럼 쉽지 않은 것 같다. 인터넷 검색 이외에는 궁금한 것을 물어보고 해결할 곳이 없으니 말이다.

 

뭐.. 끝까지 포기하지 않고 느긋한 마음으로 조금씩이라도 꾸준히 알아가다 보면 언젠가는 고수가 되어 있지 않을까?

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다