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

2015. 7. 3. 14:30
워드프레스.. 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() 함수 등

 

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

 

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

Posted by googlinfo(원래버핏)
이 댓글을 비밀 댓글로