[연재] 2014 기본테마를 내맘에 들게 손질한다. (1)

     얼마 전부터 테마 손질하기에 많은 시간을 할애 하고 있다. 현재 적용 중인 2014 기본테마는 많은 면에서 호평을 받고 있기는 하지만  몇 가지 점에서는 필자의 맘에 들지 않는 점이 있었다.  최근에 베테랑님으로 부터  코치받아서 수정한 부분까지 포함해서 테마의 외모를 수정한 내용을 기록으로 남긴다. 

       무료 서버를 사용하다 보니 근래 들어서 여러가지 사건 사고가 많아 지고 그 사건들에 대하여 발생 시간 등을 간단한 메모 형식으로 여기 블로그에 기록으로 남기는 일이 잦다보니 블로그의 모양새가 ‘이건 영 아니올시다~~로군’ 하는 생각이 많이 들어서 그런 류의 글들만을 별도의 카테고리로 모아서 side bar쪽에 별도로 모아 두고 이른바 홈화면의 main content에는 나타나지 않게 하고 싶었다.

       구글링을 해보니 php의 query loop구조에서 query_posts(),  WP_Query()  이런 걸 쓰면 된다는 예제를 찾을 수 있었다.  예제의 루프와 유사한 구조를 가진 것이 single.php내부에 있으니 우선 거기를 고쳐보기로 하고 아래의 코드를 삽입했다.

$custom_query= newWP_Query('cat = -9'); // Asides 카테고리 제외

        결과는 전혀 엉뚱한 곳에서 이상한 일이 벌어지고 원하는 결과를 얻을 수 없었다.  고민하던 끝에 베테랑 님이 운영하시는 wpq.kr 사이트에 질문을 올렸더니 바로 답신이 왔다.

 

function hidden_category( $query ) {
if ( $query ->is_home ) {
$query->set( 'cat', '-9' );
}
return $query;
}
add_filter( 'pre_get_posts', 'hidden_category' );

이런 걸 functions.php에 추가해보란다.

아니면

 

<?php
/**
* Plugin Name: 홈에서 특정 카테고리 글 숨기기
*/
function hidden_category( $query ) {
if ( $query->is_home) {
$query->set( 'cat', '-9' );
}
return $query;
}
add_filter( 'pre_get_posts', 'hidden_category' );

      이런 코드를 가지는 hiddencat.php 파일을 만들어서 플러그인 디렉토리에 올리란다.  플러그인 방식으로 쓰면 테마를 변경하더라도 손댈 이유가 없지만 functions.php 방식을 쓴다면 테마를 바꿀 때마다 그에 맞는 변경을 해주어야 하므로 번거롭다.  플러그인 방식을 먼저 테스트했더니 뭐가 잘못됐는지 플러그인 대쉬보드에서 파일명이 깨져나온다.  우선은 첫 번째 방식을 택하기로 했다.   나중에 알고보니 파일 저장할때 utf-8 지정이 잘못된 때문이었다.  기존 파일의 저장 시에는 문제되지 않지만 플러그인 파일을 새로 만들어 저장하는 것은 새로운 파일을 만드는 것이므로 저장할 때에는 에디터에서 반드시 저장 코드를 utf-8로 지정해서 저장해야한다.  그렇지 않으면 특히 내부에 포함된 한글 코드의 경우에는 글이 깨져보이는 경우가 발생한다.   지금은 아래그림 처럼 플러그인 방식으로 만들어서 잘 쓰고 있다. (물론 코드내부의 한글을 영문으로 바꾸면 되는 것일 수도 있지만 당시에는 그런 것을 테스트 해보는 대신에 선택할 대안이 있었기 때문에 확인해보지 않았다. )

user-defined-hiddencat-plugin
user-defined-hiddencat-plugin

        저 코드를 가지는 functions.php 를 child 테마 디렉토리에 만들어 넣고 ‘-9’ 의 숫자는 내가 지우고 싶은 category의 term_id 값을 넣었다.  (DB에서 term_taxonomy 라는 table을 열어보면 id와 관련되는 항목이  term_id 와 term_taxonomy_id  이렇게 두 가지가 있었는데 테스트 해본 결과 올바른 것이 term_id  였다.   코드에서 숫자 9앞에 붙은 빼기(-) 부호는 제외하라는 뜻이다. )

결과는 대 성공!! 

이제 특정 카테고리만을 선택적으로 side  bar에 나타 내주는 위젯을 구해서 제외된 카테고리만을 선택해 표시하게 하면 된다.

 

 

소셜댓글

Loading Disqus Comments ...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.