8월 27

출처: WpRecipes.com – Add private notes to your WordPress blog posts

사용 중인 테마의 functions.php 파일에 코드 몇 줄 더해주면 짧은 코드를 이용해 로그인한 관리자만 볼 수 있는 메모를 남길 수 있는 방법이 WpRecipes.com에 소개되어 있네요.

사용방법은 위 원문 링크를 따라가셔도 쉽게 알만큼 간단한데요. 사용할 short code를 테마 기능에 추가하기 위해 functions.php 파일을 열어 <?php 와 ?> 사이에 아래 코드를 붙여넣기한 뒤 저장합니다.

add_shortcode( 'note', 'sc_note' );
 
function sc_note( $atts, $content = null ) {
	 if ( current_user_can( 'publish_posts' ) )
		return '<div class="note">'.$content.'</div>';
	return '';
}

다음 포스트에서 아래처럼 특정 내용 앞 뒤에 노트 숏코드로 감싸주면 로그인했을 때 자신에게만 보여지는 메모를 남길 수가 있게 됩니다.

[note]
나만 볼 수 있지롱~. ; )
[/note]

functions.php에 숏코드를 등록할 때 내용 앞뒤로 note 라는 이름의 클래스로 스타일을 입히겠다고 정의해뒀으니, 사용 중인 CSS 파일에 원하는 스타일을 note 클래스로 정의해서 사용할 수 있습니다.

6월 23

워드프레스는 ‘Discussion Settings’에서 ‘Show Avatars’가 선택되어져 있으면 댓글을 남긴 사람의 아바타 이미지를 그라바타(Gravatar) 서비스를 이용해 보여줍니다. 댓글을 남긴 방문객의 이메일 주소가 그라바타에 등록되어 있지 않을 경우에는 블로그 관리자가 선택한 기본 아바타 이미지를 보여주게 되는데 크게 세 가지 선택 사항이 있습니다.

  • 비워두거나(Blank)
  • 고정 이미지를 보여주거나(Mystery Man, Gravatar Logo)
  • 이메일 주소별 다른 이미지를 자동으로 생성해주거나(Identicon, Wavatar, MonsterID)

할 수 있죠. 그런데 사용자가 고정 아바타 이미지를 다른 이미지로 바꿀 수 있다면 그것도 괜찮지 않을까요? 아래 그림은 방문자별로 자동으로 생성되는 그라바타 이미지(Auto-generated Gravatar images)입니다.

이메일 주소별 자동으로 생성되는 아바타 이미지

그래서 둘러봤더니 역시나 방법이 몇 가지 올라와 있습니다. 그 중에서 가장 쉬워보이는 방법은 BuildInternet.com에 올아온 방법이 아닌가 싶어 소개합니다. 방법은 간단합니다.

  1. 현재 사용하고 있는 테마의 functions.php 파일을 열어 아래 코드를 추가합니다.
  2. 현재 사용하고 있는 테마의 images 디렉토리에 그라바타를 사용하지 않는 방문객이 남긴 댓글에 보여줄 이미지를 올립니다.
  3. 블로그 관리자 계정에 접속해 Settings > Discussion을 선택해서 방금 업로드 시킨 이미지를 Default Avatar로 선택한 뒤 Save Changes를 눌러줍니다.

업로드한 이미지를 기본 아바타 이미지로 지정합니다

아래 코드를 functions.php에 추가하실 때에는 제일 위에 보이는 <?php 바로 아래에 붙여넣기 하시면 됩니다. 기본 아바타로 사용할 이미지의 이름과 확장자는 default.png로 지정되어 있는데 사용하실 이미지에 맞춰 수정해주시면 되며, “FantasyAmplifier”는 위 그림처럼 기본 아바타 이미지 선택 화면에 나타날 이름입니다. 원하시는 대로 바꿔주시면 되겠습니다.

기본 아바타로 사용할 이미지를 꼭 테마 디렉토리에 올려야 되는 것은 아닙니다. 이미지를 다른 곳에 올렸을 경우 ‘$myavatar =’ 뒤에 경로를 기입해주시면 됩니다. ‘http://fantasyamplifier.com/boa.png’ 처럼 말이지요. 이때 주의하실 점은 경로 앞 뒤에 꼭 작은 따옴표를 붙여주셔야 된다는 점입니다.

add_filter( 'avatar_defaults', 'newgravatar' );
function newgravatar ($avatar_defaults) {
$myavatar = get_bloginfo('template_directory') . '/images/default.png';
$avatar_defaults[$myavatar] = "FantasyAmplifier";
return $avatar_defaults;
}
5월 30

워드프레스에서 블로그 첫화면은 index.php나 home.php 템플릿을 사용해 보여주고, 개별 포스트를 보여줄 때는 single.php를 이용합니다. 카테고리 페이지는 category.php를 이용하는데, 카테고리 템플릿 파일의 이름을 category-1.php, category-2.php 처럼 ‘category-’뒤에 카테고리 ID를 넣어주어 각각 다르게 꾸밀  있습니다.

반면 single.php는 카테고리 페이지처럼 이렇게 카테고리 ID를 이용해 달리 꾸밀 수 없지요. 그런데 역시나 찾아보니 functions.php에 필터링 코드를 추가해 카테고리별로 각각 다른 single.php 파일을 적용할 수 있는 방법이 있습니다. 이 말은 곧, 카테고리별로 포스트 디자인을 달리할 수 있다는 말입니다.

적용하는 방법은 간단합니다. 아래 코드를 사용 중인 테마의 functions.php를 열어 ‘<?php’ 바로 아래에 추가합니다. 다음 single.php 파일을 복사해 single-ID.php로 이름을 바꿔줍니다. 이때 ID는 카테고리 ID입니다. 카테고리 ID는 Post > Categories로 이동해 카테고리 이름이나 Edit 위에 커서를 올리면 브라우저의 상태표시줄에 ‘cat_ID=231′처럼 뜹니다. 곧 A라는 카테고리의 ID가 231이라면 single-231.php로 파일 이름을 바꿔주시면 되겠습니다.

add_filter('single_template', create_function('$t', 'foreach( (array) get_the_category() as $cat ) { if ( file_exists(TEMPLATEPATH . "/single-{$cat-&gt;term_id}.php") ) return TEMPLATEPATH . "/single-{$cat-&gt;term_id}.php"; } return $t;' ));

코드는 해당 포스트의 카테고리 ID로 된 single-ID.php 파일이 있으면 해당 템플릿을 이용해 포스트를 뿌려주며, 없을 경우 기본 single.php 템플릿을 이용합니다. 곧 모든 카테고리별로 single-ID.php로 바꿀 필요가 없다는 뜻입니다.

CSS를 다룰 줄 아신다면 카테고리별로 전체 디자인을 달리할 수 있겠지만, 간단하게는 카테고리별로 다른 광고를 적용해볼 수 있습니다. 애드센스를 사용하신다면, 카테고리별로 다른 크기의 애드센스 광고 단위를 위치를 달리해 적용하실 수 있겠습니다.

특정 포스트를 여러개의 카테고리로 분류한 경우 카테고리 ID가 큰 single-ID.php 템플릿 파일을 이용하는데, 이 점은 정확하지 않을 수 있습니다. 제 경우는 카테고리를 복수지정하지 않기 때문에 시험삼아 몇번 해봤을 뿐이니까요.

카테고리별로 사이드바도 각각 다르게 하고 싶으시다면 ‘템플릿 페이지별로 다른 사이드바 적용하기‘글을 참고하세요. 혹 Appearance > Widgets 메뉴를 이용해 사이드바에 위젯을 추가해 사용하지 않으신다면  single-ID.php 파일에서 <?php include (’sidebar-231.php’); ?> 처럼 바로 사이드바 템플릿 파일을 불러오시면 됩니다.

코드 출처 : http://www.nathanrice.net/blog/wordpress-single-post-templates/

4월 12

그림 1)은 이전에 한 번 사용했던 이미지인데, 현재 제 블로그의 레이아웃입니다. 흔히 2단이라고해서 본문 영역 왼쪽이나 오른쪽에 블로그 날개(sidebar) 영역이 하나 뿐인 구조입니다.

header, sidebar, footer 영역은 개별 템플릿 파일(header.php, sidebar.php, footer.php)로 분리되어 있습니다. 그리고 이 세 파일을 불러와 content 영역에 작성된 포스트 내용을 채워서 화면에 보여주는 텔플릿 파일에는 index.php, single.php, category.php, archive.php, search.php 등이 있습니다.

이 글에서는 블로그 첫화면(index.php or home.php), 포스트(single.php), 카테고리 페이지(category.php or category-id.php), 방명록 페이지(page.php or guestbook.php)에 각각 다른 sidebar-#no.php 파일을 불러와 사이드바 영역에 다른 내용을 보여주는 방법에 대해 알아 보겠습니다.

1) 블로그 레이아웃

그림 1) 블로그 레이아웃

 

작업 과정

우선 사용 중인 테마 파일에 있는 php 파일은 따로 사본을 만들어 두시기를 권합니다. 간단한 과정이지만 혹시 실수를 했을 때를 대비해서 말이지요. 작업 과정은 크게 네 단계로 나누었습니다. 

  1. 사용할 사이드바의 수 결정, functions.php 파일 코드 수정
  2. sidebar.php 파일을 필요한 사이드바 수만큼 복사, 이름은 sidebar1.php, sidebar2.php, sidebar3.php 식으로 지정, 각각의 파일 코드 수정
  3. index, single, category, guestbook 템플릿 파일을 열어 원하는 사이드바를 불러올 수 있도록 코드 수정, 수정한 전체 파일 업로드
  4. 관리자화면 > Appearance > Widgets 에서 각각의 사이드바에 위젯 추가

이 글에서 소개할 방법은 Appearance > Widgets에 사용가능한 사이드바의 이름이 sidebar 1, sidebar 2, sidebar3 식으로 나타나기 때문에 인지하기 쉽지 않은 단점이 있습니다. 하지만 frontpage, singlepost, category, guestbook 처럼 이름이 나타나게 하는 방법보다는 쉽게 이해할 수 있다는 장점이 있어 이 방법을 택했습니다. 그리고 당연히 테마에 따라 이 방법을 적용할 수 없는 경우도 있습니다. 1단계에 나오는 코드가 변형된 경우라면 다른 방법을 찾아 보셔야 될 것입니다.

 

1단계

이 글에서는 블로그 첫화면, 포스트, 카테고리, 방명록 페이지에 각각 다른 사이드바를 적용할 것이기 때문에 필요한 사이드바의 수를 4개로 정했습니다. 아카이브(archive.php)와 검색결과(search.php) 페이지에도 다른 사이드바를 적용하고 싶으시다면 수를 늘려 잡으시면 됩니다. 만약 카테고리 페이지별로 각각 다르게 사이드바 영역을 꾸미고 싶으시다면 카테고리 수도 계산에 넣으세요. 

<?php if ( function_exists(‘register_sidebar’) )
register_sidebars(4, array(
‘before_widget’ => ‘<div id=”%1$s” class=”widget”><div class=”widget-top”>’,
‘after_widget’ => ‘</div></div>’,
‘before_title’ => ‘<h2>’,
‘after_title’ => ‘</h2></div><div class=”widget-entry”>’,
));
?>

사용 중인 테마 디렉토리에서 functions.php 파일을 열어보면 위와 같은 코드가 있을 것입니다.  빨간색으로 나타낸 2번째 줄의 array 앞에 필요한 사이드바의 수를 입력합니다. 코드에서 <div> 태그는 스타일을 적용하는 것이기 때문에 테마별로 클래스 이름에는 차이가 있을 수 있습니다. 이 작업은 FTP에서 해당 파일을 선택한 뒤 View/Edit으로 직접 열어서 편집한 후 저장하시는 것이 편합니다.

변경 내용을 저장해서 계정에 올리셨다면, (관리자화면 > Appearance > Widgets)Current Widgets에서 사용할 수 있는 사이드바에 sidebar 1, sidebar 2, sidebar 3, sidebar 4가 나타납니다.

 

2단계

테마 디렉토리 또는 폴더에서 sidebar.php 파일을 복사합니다. 이름은 sidebar1.php, sidebar2.php, sidebar3.php, sidebar4.php로 변경합니다. 각각의 사이드바 템플릿을 열면 아래와 같은 코드가 있습니다.

<div id=”sidebar”><div class=”column-220-last”>
<?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar(1) ) : ?>
<?php endif; ?>
</div><!– END column –>
</div><!– END sidebar –>

두 번째 줄 dynamic_sidebar 괄호 안에 있는 숫자를 사이드바 이름 끝에 붙인 숫자에 맞추어 줍니다. 예컨대, sidebar4.php 파일은 dynamic_sidebar(4)로 수정해 주시면 됩니다.

 

3 단계

블로그 첫화면, 포스트, 카테고리, 방명록에 각각 다른 사이드바를 사용하기 위해 index.php에는 sidebar1을, single.php에는 sidebar2를, category.php에는 sidebar3.php, guestbook.php에는 sidebar4.php 파일을 불러올 수 있도록 설정하도록 하겠습니다.

index.php 파일을 열어 코드 아래 쪽을 보시면 아래처럼 include를 이용해 사이드바를 불러오도록한 태그를 볼 수 있습니다. include (’sidebar1.php’) 로 수정해주세요. 포스트에는 sidebar2.php를 불러올 수 있도록 single.php 파일을 열어 include (’sidebar2.php’) 로 수정해주세요. 카테고리와 방명록도 마찬가지 방법으로 수정해주시면됩니다. 수정을 끝마치면 변경사항을 저장한 뒤 계정에 업로드시켜 블로그에 반영시킵니다.

 <?php include (’sidebar1.php’); ?> 
</div><!– END content –> 
</div><!– END container-wrap –> 
</div><!– END container –> 
<?php get_footer(); ?>

워드프레스의 페이지(Page)를 이용해 방명록을 사용하고 있다고 가정했습니다. 워드프레스의 페이지는 포스트와는 달리 각각의 페이지에 템플릿을 적용할 수 있습니다. 페이지 작성/편집 창에서 화면 오른쪽을 보시면 Attributes 상자가 있고, 그 안에  template이라고 있습니다. Default templage을 선택하시면 테마 디렉토리에 있는 page.php 템플릿을 사용하게 됩니다. 만약 특정 페이지에 독립된 템플릿을 적용하고 싶으시다면, 간단하게 index.php 파일을 복사해서 원하는 이름으로 바꾸시고(이 글에서 사용한 방명록 페이지에 적용한 템플릿의 이름은 guestbook.php로 했습니다.) 해당 php 파일을 열어 아래코드를 <?php get_header(); ?> 아래에 추가해주시면 됩니다.

<?php get_header(); ?>
<?php
/*
Template Name: guestbook
*/
?>

Template Name으로 지정한 guestbook은 페이지(Page) 편집 창에서 Attributes > template에서 다른 템플릿 파일과 이름을 구분할 수 있도록 해줍니다.

카테고리 페이지별로 다른 사이드바를 적용하고 싶으시다면, category.php 파일을 복사해 category-id.php 파일로 이름을 변경해주신 다음 파일을 열어 include (’sidebar5.php’)와 같은 방법으로 수정해주시면 됩니다. category-id.php 파일명에서 id는 카테고리 id입니다. 확인방법은 이 글을 참고하세요. category-id.php 템플릿을 만들어 주지 않은 다른 카테고리 페이지에서는 category.php에서 include 시킨 사이드바가 보여지게 됩니다. 혼동될 수 있는데, 카테고리 페이지는 카테고리 이름을 클릭했을 때 보여지는 페이지를 말합니다. 카테고리 별로 각각의 포스트에 다른 사이드 바를 적용할 수 있다는 것은 아닙니다.

 

4단계

이제 각각의 사이드바에 원하는 위젯을 끌어다 놓을 차례입니다. Appearance > Widgets 으로 이동해 Current Widgets 에서 원하는 사이드바를 선택한 뒤 Show 버튼을 클릭해 해당 사이드바 설정 페이지로 이동해 Recent Posts, Categories 등 원하는 위젯을 끌어다 놓은 뒤 변경 사항을 저장(Save Changes)시키시면 됩니다.

 

Front page / Category page / Guestbook Page

그림 2) Front page / Category page / Guestbook Page

 

그림 2)는 각각 다른 사이드바를 적용한 블로그 첫화면(index.php), 워드프레스 플러그인 카테고리 페이지(category-123.php), 방명록 페이지(guestbook.php)의 모습을 뜬 것입니다. 그림이 작고 색상이 비슷해서 별 차이를 못 느끼실 수 있습니다.

 

나가는 글

보통 사이드바는 부수적인 정보를 전달하거나, 블로그 탐색에 도움을 주기위해, 광고를 달아 수입을 얻기 위한 목적 등으로 사용됩니다. 사이드바 영역에 페이지별로 차별화된 정보를 전달하고 꾸밀 수 있다면 좁은 공간을 더욱 효율적으로 사용할 수 있고, 블로그도 조금 더 다채롭게 보일 것입니다.

워드프레스는 프로그래밍 언어를 전혀 몰라도 쉽게 입맞에 맞게 조율할 수 있습니다. 사이드바에도 개성을 담아 보세요.

4월 11

본문에서는 부득이하게 단정적으로 말한 부분이 있습니다만 제가 PHP를 전혀 모르기 때문에 단순한 사용후기 쯤으로 생각해주시면 좋겠겠습니다. 그리고 MichaelH는 단순히 특정 질문에 대한 답변으로 코드를 올린 것이기 때문에 결과가 만족스럽지 못하다는 말을 하는 것은 이미 문맥을 벗어나는 것이기도 합니다. 질문자가 원한 답변이었으니 그걸로 족할 것입니다. 그럼에도 방법론을 살펴본다는 차원에서 살펴봤습니다.

 
MichaelH의 연관글을 보여주는 코드
워드프레스 포럼에 올라온 코드입니다. single.php에 삽입해 포스트 상단이나 하단에 해당 포스트와 연관된 글을 보여줄 수 있습니다. 사용법은 single.php 파일을 열어 아래 코드 바로 아래에 포럼에 MichaelH가 올린 코드를 복사해서 넣어주면 됩니다.

<?php the_content(); ?> 

MichaelH가 짠 코드를 붙여넣기 하세요.

하지만 비추입니다. 첫 번째 태그를 기준으로 연관글을 찾기 때문에 정확성이 떨어집니다. 예컨대, 두 개의 포스트가 있습니다. A, B라 하겠습니다. A포스트에는 a, b, c 태그가, B포스트에는 b, c 태그가 붙어 있습니다. 상식으로 볼 때 태그를 기준으로해서 연관글을 찾는다면, 이 두 글은 서로의 연관글로 떠야 될 듯 합니다. 하지만 A포스트의 연관글에 B포스트는 뜨지 않습니다. 반면 B포스트의 연관글에 A포스트가 뜹니다. A포스트의 연관글을 찾을 때 첫 번째 태그인 a를 기준으로 다른 포스트의 태그를 훑기 때문에 B포스트에 A포스트와 동일한 태그가 두 개나 달렸다는 것은 무시되기 때문입니다. 만약 C라는 포스트에 c 태그가 붙어 있다면 C포스트의 연관글에는 포스트 A, 포스트 B가 뜨게 되겠지요.

single.php에 코드를 삽입해봤습니다.

'related post' 아래 결과물이 코드를 삽입해서 뽑은 연관글

'Related Posts' 아래 결과물이 코드를 삽입해서 뽑은 연관글

그림에서 ‘연관 글’ 아래에 뜨는 글은 WordPress Related Posts 플러그인으로 뽑은 연관글이고, ‘Related Posts’ 아래에 뜨는 글은 포럼에 올라 온 코드를 삽입해 뽑은 연관글입니다. 플러그인은 4개의 연관글을 보여주도록 설정되어 있으며, 포럼에 올라온 코드는 기본값이 5개의 연관글을 보여주도록 되어 있습니다. 그림에서 위는 ‘글 수정, 블로그에서 바로 하세요‘, 아래는 ‘부가기능에 더 관심이 가는 트래픽 분석 플러그인, StatPress CN (1)‘ 포스트에 뜬 연관글입니다.

그림에서 보듯 때에 따라서 플러그인을 사용해서 뽑은 연관글과 비슷한 결과를 보여주기도 합니다. 하지만 그림 아래의 결과처럼 연관글 수가 적게 출력되는 경우가 많습니다. 연관글이 있는 경우에도 하나도 찾아내지 못하는 경우도 있습니다. 연관글을 뽑아내는 방법이 단순하니 어쩔 수 없습니다.

4월 07

Advanced Category Excluder와 같은 플러그인으로 특정 카테고리의 글은 블로그 메인에 노출되지 않도록 할 수 있습니다. 이 플러그인을 사용할 경우 특정 카테고리의 글은 검색되지 않도록 설정하거나 RSS Feed로 발행되지 않도록 하는 등 여러 가지 설정을 할 수 있습니다. 하지만 딱 한 가지 기능만 필요할 경우 굳이 플러그인을 사용할 필요는 없을 것입니다.

아래에서는 워드프레스 템플릿 태그를 이용해 간단하게 특정 카테고리의 글이 메인에 나타나지 않도록 하는 방법에 대해 알아봅니다. 블로그 첫화면에 가장 최신글 하나만 나타나도록 설정된 경우에는 이 방법을 사용하지 않는 것이 좋습니다. 메인에 나타나지 않도록 설정된 C카테고리의 글이 가장 최신에 쓴 글이라면 블로그 첫 화면에는 아무런 글도 나타나지 않게 되기 때문입니다. 과정은 3단계로 나누어 설명합니다. 정보의 출처는 WordPress.org의 FAQ Layout and Design에서 Exclude Posts From Some Category 항목입니다.

 

1. 메인에 나타나지 않도록 할 카테고리 ID 확인

카테고리별로 고유 식별 번호가 배정되어 있습니다. 간단하게 확인하는 방법은 관리자화면에서 Posts > Categories로 이동해 카테고리 이름 아래에 있는 Edit 에 링크된 URI의 주소를 통해 확인하는 것입니다. 마우스를 올려 놓으면 그림 1)처럼 브라우저의 상태표시줄에 URI가 나타나는데, 끝자리의 ‘cat_ID=’ 뒤에 오는 숫자가 해당 카테고리의 ID입니다. 그림 1)의 경우 카테고리 B의 ID는 3입니다.

그림 1) 카테고리 ID 확인

그림 1) 카테고리 ID 확인

 

2. FTP로 계정에 접속

테마 디렉토리에 있는 index.php나 home.php 파일의 퍼미션을 관리자 화면 Appearance > Edit에서 수정할 수 있도록 퍼미션을 준 경우가 아니라면, FTP로 계정에 접속해서 사용 중인 테마 디렉토리로 이동합니다.

 

3. index.php 파일을 열어 코드 삽입

사용중인 테마에 home.php 파일이 없다면 index.php 템플릿 파일로 블로그 첫화면에 보여줄 웹페이지를 만들어 주게 됩니다. home.php가 있다면 해당 파일을, 없다면 index.php 파일을 View/Edit으로 열어 아래 코드를 찾습니다. 

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

위 코드 아래에 다음과 같은 코드를 넣어 줍니다.

<?php if (in_category(‘3′) && is_home() ) continue; ?>

in_category 템플릿 태그의 괄호 안에 있는 숫자 3은 메인에 나타나지 않도록 할 카테고리의 ID입니다. 원하시는 ID를 넣어 주시면 됩니다. 변경한 뒤 문서를 저장시키면 FTP에 (파일질라 클라이언트의 경우) ‘파일이 변경됨 – 이 파일을 서버로 다시 업로드하시겠습니까?’라는 내용의 창이 뜹니다. ‘예’를 누르면 ‘타겟 파일이 이미 존재함’이라는 창이 뜨는데 확인을 눌러 주시면 됩니다. 

 

물론 테마별로 차이가 있을 수 있습니다. 특히 프리미엄 테마를 제작하는 곳에서 만든 테마의 경우 코드가 복잡하게 얽히고 설킨 경우가 많기 때문에 이처럼 간단하게 수정하기 어려운 경우가 많은 것 같습니다. 그럼에도 플러그인으로 모든 걸 해결하는 것이 능사는 아니기에 앞으로 템플릿 태그를 이용해 간단하게 블로그 설정을 변경할 수 있는 방법에 대해 알아 가고자 운을 떼봤습니다. 읽어 주셔서 감사합니다.

 

참고
How do I exclude one or more categories from being listed in the list of categories?

3월 01

첫화면에 전체글 내용이 아닌 글의 일부만 보여주는 글타래를 만들고 싶어 어떻게 해야될까 생각을 하던 중 WOO Themes의 Typebased 테마를 소개했던 기억이 떠올랐습니다. 타입베이스드 테마를 활성화시켜 설정창을 확인해봤습니다. 선택항목 중에서 ‘Show the excerpt?’가 있는데, 옆에 해당 선택항목이 어떤 기능인지 짧게 설명되어 있었습니다.

Check this if you don’t wish to display the full post eg. use the_excerpt() instead of the_content()

이 설명을 보고 블로그의 첫 화면의 내용을 설정하는 index.php 에서 글의 전체가 아닌 요약만 불러 올 수 있도록 변경할 수 있겠구나하는 생각을 했습니다.  그래서 사용하고 있는 테마 폴더에 있는 index.php 파일을 불러와 Ctrl+F로 the_content를 찾아 the_excerpt로 변경해주었습니다. 그랬더니 반갑게도 글의 일부만 불러와 주는 게 아니겠습니까? php 언어를 아시는 분께서는 정말 싱거운 얘기겠지만, php는 커녕 html도 모르는 저로서는 대단발 발견이었지요.

그런데 블로그 첫화면에 달랑 요약된 글 하나만 보여주면 너무 어색하고 심심하겠지요?  관리자화면으로 이동해 Settings > Reading 으로 이동하시면 한 화면에 몇 개의 글을 보여줄지를 설정하실 수 있습니다. ‘Blog pages show at most’ 옆에 있는 칸에 첫화면에 보여주고 싶은 글의 개수를 입력한 뒤 변경사항을 저장하시면 됩니다. 여기서 설정한 값은 첫화면 뿐만 아니라 특정 카테고리를 선택했을 때 카테고리에 있는 글 역시 지정하신 숫자만큼 보여줍니다. index.php에서 글의 전체가 아닌 일부만 보여지도록 코드를 변경했기 때문에 특정 카테고리를 선택했을 경우에도 각 글의 전체 내용이 아닌 일부만 보여주기 때문에 방문자가 탐색하기에도 수월할 것입니다.

그런데 이렇게만 설정하면 블로그 첫화면에 최신글 순으로 ‘Blog pages show at most’에서 지정한 수만큼 노출됩니다. 특별히 첫화면에 항상 걸어 두고 싶은 글이 있으시다면, 글을 작성할 때 오른쪽 Publish 탭에 있는 Visibility에서 Public 항목 바로 아래에 있는 Stick this post to the front page에 확인표시를 하시고 글을 저장하시면 됩니다. 아니면 관리자화면에서 Posts > Edit 으로 이동해 첫화면에 보여주고 싶은 글 제목 아래에 있는 Quick Edit을 눌러 Status 항목 옆 ‘Make this post sticky’를 선택하시고 저장하시면 됩니다. 이 항목을 선택하시면 블로그 첫화면 가장 위에 항상 노출됩니다. 만약 여러개의 글을 선택하시면 선택한 순으로 위에서 아래로 글이 나타납니다.

지금까지 과정을 짧게 간추리면

  1. 사용중인 테마 폴더에 있는 index.php의 the_content를 the_excerpt로 바꿔줍니다.
  2. Settings > Reading에서 Blog pages show at most 항목에 첫화면에 보여줄 글의 개수를 입력합니다.
  3. 첫화면에 맨 위에 보여주고 싶은 글이 있다면 관리자화면에서 Posts > Edit > 원하는 글에서 Quick Edit > Make this post sticky를 선택

하시면 됩니다. 그리고 글을 작성하실 때 Excerpt 항목에 직접 글의 요약을 입력하시면 글의 앞부분부터 일정량을 잘라서 보여주는 것이 아니라 입력하신 요약문이 보여집니다.

티스토리에서는 첫화면을 꾸밀 때 태터데스크(첫페이지 만들기) 플러그인을 많이 사용하는데, 워드프레스에도 그와 비슷한 플러그인이 있지 않을까 싶습니다. 찾게 된다면 글을 올리겠습니다.

읽어 주셔서 감사합니다.
행복하세요.