워드프레스를 이용하지 않고, 일반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%; }
워드프레스 동영상 아카이브용 메인레이아웃 수정(Kboard기반) (0) | 2017.08.14 |
---|---|
스크롤링으로 페이징구현하기 (0) | 2017.08.08 |
워드프레스 테이블내용을 일반PHP로 출력하기01_리스트화면 (0) | 2017.08.05 |
노드js_그누보드와 연동_03 (0) | 2017.07.23 |
노드js_그누보드와 연동_02 (0) | 2017.07.18 |
댓글 영역