상세 컨텐츠

본문 제목

워드프레스 테이블내용을 일반PHP로 출력하기02_뷰화면

PHP(Class)

by 김일국 2017. 8. 6. 19:34

본문

워드프레스를 이용하지 않고, 일반PHP로 워드프레스 게시물 내용을 불러올 경우에 사용되는 방법입니다.

이번 포스트는 리스트부분만 포함됩니다.

워드프레스URL: http://globalwing.co.kr/wordpress/?board=photo

결과확인URL: http://globalwing.co.kr/time-space/mobile/wp/view.html?BOARD_ID=14&SEQ=443


위 view.html의 소스는 아래와 같습니다.

(단 조건은 타임스페이스 프레임웍을 사용할때의 소스 입니다.

프레임웍을 사용하지 않더라도 아래 소스의 핵심은

//아래 쿼리에 사용되는 워드프레스 테이블 명 wp_posts(게시물리스트), wp_terms(게시판ID)
//wp_term_relationships(게시판ID와 게시물의 관계), wp_postmeta(게시물과 첨부파일의 관계)

위 관계를 쿼리에 잘 이용하는 것입니다. 쿼리만 주의깊게 보세요!)

<?php
session_start();
define('DS', DIRECTORY_SEPARATOR);
define('GPLDIR', $_SERVER['DOCUMENT_ROOT'].DS.'time-space/manage');
include_once GPLDIR . '/core/config/default.php';
include_once GPLDIR_CLASS . '/GPLbase.class.php';
$GPLbase = new GPLmember($GPLcookie_domain, $GPLurl_default, $GPLpath_default);//상속받은 개체 멤버클래스 사용
$GPLdb5 =& $GPLbase->db5;//db 커넥션 오브젝트생성 MYSQL5
//아래 쿼리에 사용되는 워드프레스 테이블 명 wp_posts(게시물리스트), wp_terms(게시판ID)
//wp_term_relationships(게시판ID와 게시물의 관계), wp_postmeta(게시물과 첨부파일의 관계)
?>
<?php //입력값 바인딩
//게시판 공통변수 항상 페이지 상단에 위치
$MODE = $_REQUEST['MODE'];
$GUBN = $_REQUEST['GUBN'];
$SEARCH = $_REQUEST['SEARCH'];
$BOARD_ID = $_REQUEST['BOARD_ID'];
$BOARD_SEQ = $_REQUEST['SEQ'];
$now_page = $_REQUEST['now_page'];
//메뉴 변수
 switch ($BOARD_ID) { //photo
  case 'photo'  : $title='사진게시판';break;
  default   : $title='사진게시판';break;
 }
//정보 가져오기 쿼리정리
 $SQL = "SELECT";
 $SQL .= " A.ID as SEQ,A.post_title,A.post_content, A.post_author, A.post_date, B.user_login";
 $SQL .= " FROM wp_posts A INNER JOIN wp_users B on A.post_author=B.ID ";
 $SQL .= " WHERE A.ID = '$BOARD_SEQ'";
 $ROW = $GPLdb5->GPLquery_fetch_assoc_one($SQL);
 //바인딩변수값 정의
 $CONTENT = $ROW['post_content'];
 $TITLE = $ROW['post_title'];
 $REGDATE =  $ROW['post_date'];
 $USER_ID = $ROW['user_login'];
 //첨부파일 갯수
  $SQL = "SELECT";
  $SQL .= " COUNT(meta_id) AS FILE_CNT";
  $SQL .= " FROM wp_postmeta";
  $SQL .= " WHERE post_id = '".$ROW['SEQ']."'";
  $SQL .= " AND meta_key = 'gnu_bbs_file'";
  $FILE_ROW = $GPLdb5->GPLquery_fetch_assoc_one($SQL);
  $FILE_CNT = $FILE_ROW['FILE_CNT'];
?>
<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8" />
 <meta name="viewport" content="height=device-height,width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no;" />

 <title>Time-Space Web Service</title>
 <link rel="stylesheet" type="text/css" href="/time-space/mobile/css/reset.css">
 <link rel="stylesheet" type="text/css" href="/time-space/mobile/css/style.css">
</head>
<body> 
<article id="container">
 <h2 class="title"><div class="title"><span class="view">Title: <?=$TITLE?></span></div></h2>
 <section>
 <div class="post" style="background-color:white">
 <p>
 Posted by <?=$USER_ID?> on
 <time datetime="2013-06-25"><?=$REGDATE?></time>
 <?php if ($FILE_CNT > 0){ ?>
  <span class="visual">
   <?php
   //첨부파일 셀렉트
    $SQL = "SELECT";
    $SQL .= " meta_value";
    $SQL .= " FROM wp_postmeta";
    $SQL .= " WHERE post_id = '".$ROW['SEQ']."'";
    $SQL .= " AND meta_key = 'gnu_bbs_file'";
    $fileresult= $GPLdb5->GPLexcute_query($SQL);
   if($fileresult){
           while($row2 = mysql_fetch_array($fileresult)) {
    ?>
                      <img src="<?=$row2['meta_value']?>">
                 <?php } ?>
   <?php } ?>
 <?php } ?>
 </p>
 <p>
  <?=str_replace("\r\n", "<br/>",$CONTENT);?>
 </p>
 </div>
 <!-- 등록버튼 시작 -->
 <span class="clear10"></span>
 <div id="board_list_button_table">
  <a href="list.html?now_page=<?=$now_page?>&GUBN=<?=$GUBN?>&SEARCH=<?=$SEARCH?>&BOARD_ID=<?=$BOARD_ID?>&MODE=list'">
  <span class="button">LIST</span></a>
 </div>
</article>
</body>
</html>


스타일중에서 이미지 처리에 대한 부분은 아래가 핵심입니다.

/* 이미지 화면처리 */
.visual { width:100%; margin:0 auto; text-align:center; }
.visual img { max-width:100%; }

관련글 더보기

댓글 영역