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

워드프레스 루프(Loop) 이해하기. - 웹페이지에 정보 표현 하는 코드부

by i.got.it 2014. 10. 21.

 

 

 

개요

   
 

본 글은 워드프레스에서 가장 중요한(혹은 워드프레스의 특징적인) 처리방식인 Loop 에 대한 이해를 위한 목표로 하여 간략히 정리된다.

 

본 글의 내용은 아래 codex에서 제공하는 정보를 기반으로 한다.

 

1. The Loop in Action  보기 -> http://codex.wordpress.org/The_Loop_in_Action 

 

2. The Loop 보기 -> http://codex.wordpress.org/The_Loop

 

 

 

 

 

 

1.워드프레스에서 Loop의 기능

   
 

 

1. 워드프레스의 Loop 은  템플릿 파일(index.php , single.php,... 같은 php파일들을 의미함)내에 구현되어 "웹페이지에  정보를 보이게 하는 처리"를 수행한다. 

 

2.1의 글에서 "정보"란 워드프레스에서 작성된 post, page, 카테고리에 포함된 글리스트, 글의 저자,글의 일자 ,.. 등 워드프레스 데이터베이스에 기록된 모든 정보들을 의미한다.

 

3. Loop 은  웹 방문자가 요청한 정보를 보이게 하는 처리를 수행해야하나, Loop이 웹방문자가 요청한 정보를 데이터베이스에서 가져오는 처리를 수행하지는 않는다. 데이터베이스에서 정보를 가져오는 것은 Loop 루틴이 실행되기 전에 이미 워드프레스가 이미 방문자가 요청한 정보를 데이터베이스에서 가져와서 전역변수등에 저장해둔 상태에서 Loop 루틴이 실행된다. 따라서, Loop 은 변수에 있는 값을 활용하여 보이기 처리만 수행하면된다.  

추가상세정보 : 본 3번 사항 관련으로 방문자가 웹에서 요청한 정보를 워드프레스가 처리하는 절차에  대한 조금 더 상세한 정리글 보기 ->  http://igotit.tistory.com/121

 

4. 템플릿 파일에서 Loop 이 배치되는 위치

템플릿 파일의 내부에서 Loop 가 배치되는 위치는 아래 파란색 글자 부분이며, Content 영역이라 부른다.

 <?php get_header(); ?> // header.php  파일을 인클루드한다.(실행시킨다.)
 

 이 자리에 WordPress Loop 가 배치되어 포스트, 페이지 등의 모든 정보를 표현하는 처리가 이뤄짐. 
 
<?php get_footer(); ?> // footer.php 파일을 인클루드 한다.(실행시킨다.)

 

추가상세정보 :  워드프레스에서의 웹페이지를 구성하는 테플릿 파일의 형식 이해. 보기 -> http://igotit.tistory.com/123

 

 

 

 

 

 

 

 

2. Loop 의 예

   
 

 

아래 코드는 간단히 작성된 index.php 파일이며, 파란색 배경 글자 부분 모두가 Loop 구간이다. header와 footer 사이(이 구간이 Content 영역임)에 배치되어있다. 즉, 이 자리에서 정보를 표현하는 처리를 하게된다. Loop 라고 이름 붙인 이유는 이 코드영역 속에 있는 while 문 때문이다.

 

<?php
get_header();
if (have_posts()) :
   while (have_posts()) :
      the_post();
         the_content();
   endwhile;
endif;
get_footer();
?>

 

작동방식.

1. 위 코드에서 if문 속을 보면 have_posts() 라는 함수로 포스트가 있는지 점검하여 1개 이상의 포스트가 있다면 endif 사이가 실행된다.

- 포스트가 없다면 endif 문 사이는 실행되지 못하고, 바로 get_footer()가 실행되어 footer.php 가 실행된다.

2. 위 1에서 포스트가 1개라도 있다면 endif 사이영역이 실행되며, while ~ endwhile 문에 의하여 전체 포스트에 대해서 루프를 돌면서 각각의 포스트에 대해서 the_post(); 가 실행되고 이어서  the_content(); 가 실행된다.

the_post() 함수는 포스트 리스트에서 다음 포스트를 받아오는 함수다. 이 함수가 포스트 정보를 가져오면 이제 HTML로 정보를 표현할 준비가 된 상태다.

the_content(); 함수는 포스트의 content 를 웹페이지에 표현하는 처리를 한다.

 

Template Tags

위 예제 루프내에서의 the_post(); the_content(); 함수를 Template Tags 라고 한다.

Template Tags 는 Templates(위의 예처럼 index.php, single.php, category.php ,...등등) 내에서 사용되어  정보를 표현하는 기능을 하는 것들을 총칭하는 용어다. 이런 함수는 여러가지가 정의되어있고 (예: 포스트제목 표현하려면 the_title(); 를 호출한다.) 아래 링크에 모든 Template Tags 를 확인할 수 있다.

 

Template Tags 의 codex 설명 보기 -> http://codex.wordpress.org/Template_Tags 

 

 

 

 

 

 

본 글이 포함된 통합 정리 글

 

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

 

 

 

 

124.

댓글



 

비트코인




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