이번에 워드프레스로 동영상 아카이브(자료정리) 반응형 사이트를 제작할 기회가 생겨서 선수 지식을 쌓아 보기로 하였다.
1. 워드프레스 준비 https://ko.wordpress.org/ (wordpress-4.8.1-ko_KR.zip 파일압축푼다)
2. Kboard 는 현재 제작사인 코스모스팜의 사정으로 워드프레스 관리자에서 바로 설치가 불가능한 관계로
다운로드 받아서 ( http://www.cosmosfarm.com/products/kboard ) 압축을 풀고 wp/wp-content/plugins 에 업로드 한다.
3. 워드프레스 설치 http://timespace7.dothome.co.kr/wp/ 최초 접속하면 설치진행 된다.
4. 동영상용 워드프레스 무료 테마 설치 ( https://ko.wordpress.org/themes/destin-basic/ )
다운로드 후 theme 폴더에 업로드 -> 테마활성화 ( destin-basic테마는 무료이며, 기능추가버전은 69달러 부터~)
- 테마정보: 테마메인페이지 ( front-page.php -> bavotasan_front_page_render() 함수 실행)
- bavotasan_front_page_render() 함수수정(/wp/wp-content/themes/destin-basic/functions.php
수정사항 내역(아래 추가1, 추가2 부분)
function bavotasan_front_page_render() {
global $wp_query, $paged;
?>
<?php
//K보드 DB연동 코드 추가1 시작
global $post;
add_filter( 'parse_query', 'mypostsfilteringfunction' );
function mypostsfilteringfunction( $query ){
add_filter('posts_join','kboard_posts_join');
add_filter('posts_orderby','kboard_posts_orderby');
add_filter( 'posts_where', 'kboard_posts_where' );
add_filter( 'posts_request', 'myplugin_sqlprint' );
}
function kboard_posts_join ($join) {
global $wpdb;
$kboard = $wpdb->prefix . "kboard_board_content";
$posts_kboard_view_join = "INNER JOIN $kboard on $wpdb->posts.post_name = $kboard.uid AND $kboard.status !='trash'";
$join .= $posts_kboard_view_join;
return $join;
}
function kboard_posts_orderby ($orderby) {
global $wpdb;
$posts_kboard_table = $wpdb->prefix . "kboard_board_content";
$orderby = "$posts_kboard_table.date DESC, $wpdb->posts.post_date DESC";
return $orderby;
}
function kboard_posts_where ($where){
//$where .= ' AND wp_kboard_board_content.category1="공부"';
return $where;
}
function myplugin_sqlprint( $request ) {
$request = str_replace("wp_posts.*","*",$request);
//echo $request;//디버그
return $request;
}
query_posts(array(
'post_type' => 'kboard'
/*'paged' => 1,
'tax_query' => $arrCat*/
));
add_filter( 'posts_fields', 'custom_posts_fields');
function custom_posts_fields( $sql ) {
return $sql . ", wp_kboard_board_content.thumbnail_file as thumbnail_file";
}
//K보드 DB연동 코드 추가1 끝
?>
<?php while ( have_posts() ) : the_post(); ?>
<?php if ( is_front_page() ) { ?>
<div class="item item-<?php the_ID(); ?>">
<figure class="effect-julia">
<?php
/*if ( has_post_thumbnail() )
the_post_thumbnail( 'home' );
*/
//K보드 DB연동 코드 추가2 시작
if ($post->thumbnail_file)
echo '<img src="/wp/' .$post-> thumbnail_file.'" alt="" />';
else
echo '<img src="' . BAVOTASAN_THEME_URL . '/library/images/no-image.jpg" alt="" />';
//K보드 DB연동 코드 추가2 끝
?>
<figcaption>
<h2><?php the_title(); ?>
</h2>
<div>
<p><?php echo wp_trim_words( strip_shortcodes( get_the_excerpt() ) , 10 ); ?></p>
<p class="more-link-p"><?php _e( 'Continue reading <span class="meta-nav">→</span>', 'destin-basic' ); ?></p>
</div>
<a href="<?php the_permalink(); ?>"><?php _e( 'View more', 'destin-basic' ); ?></a>
</figcaption>
</figure>
</div>
<?php } else { ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php } ?>
<?php endwhile; ?>
<?php
wp_reset_postdata();
}
참고) 메인에서 게시글을 눌렀을 경우 page.php 로 이동.
5. Kboard 겔러리형 게시판 생성 후 자료 3개 등록
- 게시판설정: 첨부파일 1개, 카테고리(자연, 사람, 여행), 댓글 활성화, 게시판스킨(thumbnail)
6. 결과 확인
http://timespace7.dothome.co.kr/wp/
다음포스트에서는 실제 Kboard 갤러리형 게시판 스킨을 동영상 게시판스킨으로 만드는 작업을 진행 에정 입니다.^^
워드프레스 포스트 기준 테이블 구조도와 기본 조인 쿼리 (0) | 2017.08.20 |
---|---|
워드프레스 권한 및 외부 post(프론트엔드포스트) 기능 (0) | 2017.08.18 |
스크롤링으로 페이징구현하기 (0) | 2017.08.08 |
워드프레스 테이블내용을 일반PHP로 출력하기02_뷰화면 (0) | 2017.08.06 |
워드프레스 테이블내용을 일반PHP로 출력하기01_리스트화면 (0) | 2017.08.05 |
댓글 영역