차림

2007년 1월 23일

테크노트 title에 글 제목이 오게 하는 방법

title에 본문 글 제목이 나오도록 하면 접근성 면에서도 좋은 데다가 검색 엔진 최적화 방법 가운데 하나라고 구글 같은 검색 사이트에서도 검색 결과 앞부분에 뜨는 데 유리하다.

테크노트 보드는 배포판 기본 설정에서는 title에 본문 글 제목이 나오도록 되어 있지 않다. 따로 자바스크립트를 이용해서 title에, 정확히는 브라우저 꼭대기와 맨 아래 탭 부분에 글 제목이 오도록 하는 방법을 알려주고 있긴 하다.

하지만 소스를 보면 실제로는 title에 글 제목이 오는 건 아니기 때문에 검색 사이트에서는 title에 글 제목이 있다고 인식하지는 못한다. 따라서 이건 검색 엔진 최적화 면에서는 무용지물이고, 접근성 면에서 어떨지는 브라우저 화면을 읽어주는 프로그램을 써 본 일이 없어서 모르겠다.

하여튼 그래서 진짜로 title에 본문 글 제목이 오는 방법을 연구하여 피 안 나는 노력 끝에 그 방법을 알아냈다. 테크노트 보드를 쓰면서 타이틀에 글 제목이 오도록 하는 방법을 찾던 지구인들에게 도움이 되길 바란다.

title에 본문 글 제목이 오도록 하는 방법

1_main_html.php 파일 아니면 자기가 만든 다른 1_main_html_myboard.php 같은 파일을 열고 headmeta 태그 아래 <title> 태그가 오는 곳을 다음 코드로 바꿔준다.


<?php // 타이틀 태그
$table_name = "a_tn2_".$board."_list";
$query = "select subject from $table_name where no=$no";
$select_result = @mysql_query($query);
$Index_data = @mysql_fetch_array($select_result);
if ($command=='list' && $page)
  echo "<title>황씨신문 - ".$Bconfig[tx1_1]." ".$page."쪽</title>";
elseif ($command=='write') 
  echo "<title>황씨신문 - ".$Bconfig[tx1_1]." - 쓰기</title>";
elseif ($command=='body' && $no>0) 
  echo "<title>황씨신문 - ".$Bconfig[tx1_1]." - ".$Index_data[subject]."</title>";
else 
  echo "<title>황씨신문 - ".$Bconfig[tx1_1]."</title>";
?>

위 코드에서 맨 위의 네 줄은 DB에서 현재 게시판 (변수 $board)의 현재 게시물 번호 (변수 $no)에 해당하는 제목 (subject)를 불러오는 내용이다. 그냥 $Index_data[subject]$Body_data[subject]를 써서는 제목이 출력되지 않았기 때문에 이렇게 직접 DB에서 제목을 불러왔다.

만약 누리집 이름이 '황씨신문'이고 현재 게시판 이름 (변수 $Bconfig[tx1_1])이 '방명록'일 경우 title, 즉 브라우저 꼭대기에는 if 문 조건에 따라 아래와 같이 다르게 나온다.

  1. 첫 번째는 목록인데 쪽수 (page)가 있는 경우 :
    황씨신문 - 방명록 3쪽
  2. 두 번째는 쓰기나 답변 쓰기일 경우 :
    황씨신문 - 방명록 - 쓰기
  3. 세 번째는 본문 내용 보기일 경우 :
    황씨신문 - 방명록 - 글제목
  4. 네 번째는 그 이외의 경우 (그냥 그 게시판 주소로 들어간 경우 포함) :
    황씨신문 - 방명록

그런데 이미 쓴 글을 '수정'으로 들어가서 고칠 경우에는, commandwrite 대신에 iwindow가 뜨기 때문에 '쓰기'라고 나오는 대신 네 번째 경우처럼 나온다.

title에 보이는 형식을 바꾸고 싶다면 위 코드에서 출력을 나타내는 echo 부분을 바꿔 주면 된다. 누리집 이름은 '황씨신문' 대신에 자신의 누리집 이름을 적어 주면 된다. 변수는 $page처럼 그냥 적어주고 그 외 문자열은 "<title>황씨신문 - "처럼 따옴표로 감싸준다. 그리고 변수와 변수, 변수와 문자열 또는 문자열과 문자열 등을 이어 출력되게 할 때는 둘 사이에 .을 넣어 주면 된다.

누리집 이름, 게시판 이름, 글 제목을 >로 나눠 보이게 하기

만약 title에서 누리집 이름, 게시판 이름 그리고 글 제목을 아래와 같이, - 대신에 >로 나눠 보이게 하고 싶다면 위의 코드에서 if 문 부분을 아래 코드로 바꿔 준다. echo 부분에서 - 대신에 &gt;를 넣어 준 것만 다르다.

  1. 황씨신문 > 방명록 3쪽
  2. 황씨신문 > 방명록 > 쓰기
  3. 황씨신문 > 방명록 > 글제목
  4. 황씨신문 > 방명록

if ($command=='list' && $page)
  echo "<title>황씨신문 &gt; ".$Bconfig[tx1_1]." ".$page."쪽</title>";
elseif ($command=='write') 
  echo "<title>황씨신문 &gt; ".$Bconfig[tx1_1]." &gt; 쓰기</title>";
elseif ($command=='body' && $no>0) 
  echo "<title>황씨신문 &gt; ".$Bconfig[tx1_1]." &gt; ".$Index_data[subject]."</title>";
else 
  echo "<title>황씨신문 &gt; ".$Bconfig[tx1_1]."</title>";

글 제목, 게시판 이름, 누리집 이름 순서로 나오도록 하기

만약 차례를 바꿔, 글 제목이 먼저 나오고 그 다음에 게시판 이름, 그리고 마지막으로 누리집 이름이 나오게 하고 싶다면, 맨 위의 코드에서 if 문 부분을 아래 코드로 바꿔 준다. 이 코드로 바꿀 경우 아래처럼 나온다.

  1. 방명록 3쪽 - 황씨신문
  2. 방명록 쓰기 - 황씨신문
  3. 글제목 - 방명록 - 황씨신문
  4. 방명록 - 황씨신문

if ($command=='list' && $page)
  echo "<title>".$Bconfig[tx1_1]." ".$page."쪽 - 황씨신문</title>";
elseif ($command=='write') 
  echo "<title>".$Bconfig[tx1_1]." 쓰기 - 황씨신문</title>";
elseif ($command=='body' && $no>0) 
  echo "<title>".$Index_data[subject]." - ".$Bconfig[tx1_1]." - 황씨신문</title>";
else 
  echo "<title>".$Bconfig[tx1_1]." - 황씨신문</title>";

글 제목만 나오도록 하기

만약 본문 내용 보기에서 누리집 이름이나 게시판 이름은 다 빼고 title에 글 제목만 나오게 하고 싶다면, 맨 위의 코드에서 if 문 세 번째 조건 부분을 아래 코드로 바꿔 준다.


elseif ($command=='body' && $no>0) 
  echo $Index_data[subject];

굳이 글 제목 외에 쓰기나 쪽수 등을 title에 나타낸 까닭은 그게 접근성을 높이는 방법이기 때문이다. 화면 내용을 읽을 수 없어서 브라우저 화면을 읽어주는 프로그램을 쓰는 사람에게는 title 태그 내용이 중요하기 때문에, title 내용을 정확하고 자세하게 적어 주어야 한다.

목록