상세 컨텐츠

본문 제목

워드프레스 동영상 아카이브용 메인레이아웃 수정(Kboard기반)

PHP(Class)

by 김일국 2017. 8. 14. 22:10

본문

이번에 워드프레스로 동영상 아카이브(자료정리) 반응형 사이트를 제작할 기회가 생겨서 선수 지식을 쌓아 보기로 하였다.

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 갤러리형 게시판 스킨을 동영상 게시판스킨으로 만드는 작업을 진행 에정 입니다.^^

관련글 더보기

댓글 영역