TIPS 계층화된 카테고리를 지원하는 이동경로 작성하기

카테고리가 여러 계층인 경우 이동경로에는 상위 카테고리로 이동하는 링크도 출력할 필요가 있다. get_category_parents()를 이용하면 모든 상위 카테고리의 링크를 이동경로의 형식으로 출력할 수 있다. 단, microdata의 정보를 추가할 수 없기 때문에 다음과 같이 입력한다.
single.php

  • 표시 중인 기사가 속하는 카테고리의 ID를 취득해서  $catid에 대입한다. 이 카테고리는 링크의 형식으로 출력하기 위해 상위 카테고리의 ID를 대입하는 $allcats에 ID를 추가한다.
  • 모든 상위 카테고리의 ID를 취득해서 $allcats에 추가하는 처리를 한다. 이 부분은 single.php와 category.php에서 같은 처리를 한다.
<?php get_header(); ?>

<!– 이동경로 –>
<div id=”breadcrumb”>
<div itemscope itemtype=”http://data-vocabulary.org/Breadcrumb”>
<a href=”<?php echo home_url(); ?>” itemprop=”url”>
<span itemprop=”title”>TOP</span>
</a> &rsaquo;
</div>

<?php $postcat = get_the_category(); ?>
<?php $catid = $postcat[0]->cat_ID; ?>
<?php $allcats = array($catid); ?>

<?php
while(!$catid==0) {
$mycat = get_category($catid);
$catid = $mycat->parent;
array_push($allcats, $catid);
}
array_pop($allcats);
$allcats = array_reverse($allcats);
?>

<?php foreach($allcats as $catid): ?>
<div itemscope itemtype=”http://data-vocabulary.org/Breadcrumb”>
<a href=”<?php echo get_category_link($catid); ?>” itemprop=”url”>
<span itemprop=”title”><?php echo get_cat_name($catid); ?></span>
</a> &rsaquo;
</div>
<?php endforeach; ?>

<div><?php the_title(); ?></div>
</div>

<!– 콘텐츠 –>
(생략)

category.php

  • 표시 중인 카테고리의 ID를 취득해서 $catid에 대입한다. 이 카테고리는 링크 형식으로 출력하지 않고 제목만을 출력하기 때문에 상위 카테고리의 ID를 대입하는  $allcats에는 ID를 추가하지 않는다.
  • $allcats에 취득한 ID의 카테고리의 링크를 상위 계층으로부터 순서대로 출력한다. 이 부분은 single.php와 category.php에서 같은 처리를 한다.

<?php get_header(); ?>

<!– 이동경로 –>
<div id=”breadcrumb”>
<div itemscope itemtype=”http://data-vocabulary.org/Breadcrumb”>
<a href=”<?php echo home_url(); ?>” itemprop=”url”>
<span itemprop=”title”>TOP</span>
</a> &rsaquo;
</div>

<?php $catid = $cat; ?>
<?php $allcats = array(); ?>
<?php
while(!$catid==0) {
$mycat = get_category($catid);
$catid = $mycat->parent;
array_push($allcats, $catid);
}
array_pop($allcats);
$allcats = array_reverse($allcats);
?>

<?php foreach($allcats as $catid): ?>
<div itemscope itemtype=”http://data-vocabulary.org/Breadcrumb”>
<a href=”<?php echo get_category_link($catid); ?>” itemprop=”url”>
<span itemprop=”title”><?php echo get_cat_name($catid); ?></span>
</a> &rsaquo;
</div>
<?php endforeach; ?>

<div><?php single_cat_title(); ?></div>
</div>

<!– 콘텐츠 –>
(생략)

출처: 바꾸면서 배우는 워드프레스 디자인

답글 남기기