018:カテゴリーを表示
公開日:2020年11月08日
更新日:2020年11月11日
投稿は必ず1つ以上のカテゴリを持っています。カテゴリを表示させましょう。
カテゴリー表示用関数はページ内容表示用ループ内で使用します。
カテゴリー表示は「投稿」に設定できる機能なので「投稿一覧」と「投稿詳細」で使用します。
リンクつきカテゴリー表示簡易版
WordPress関数にリンクつきカテゴリー表示関数が用意されています。
<?php the_category(); ?>
HTML出力結果
<ul class="post-categories">
<li>
<a href="http://localhost/WordPressフォルダ/category/カテゴリースラッグ/" rel="category tag">
カテゴリー名
</a>
</li>
</ul>
リンクつきカテゴリー表示詳細版
<?php
/**
* タクソノミーリスト
*
* $taxonomySlug:表示対象タクソノミー
*/
$taxonomySlug = 'category';
$termData = wp_get_object_terms($post->ID, $taxonomySlug);
?>
<?php if ($termData) : ?>
<ul class="TaxonomyList">
<?php
foreach ($termData as $termDataObj) :
$termID = $termDataObj->term_id;
$termName = $termDataObj->name;
$termLink = get_category_link($termID);
?>
<li class="TaxonomyList__item">
<a class="TaxonomyList__link" href="<?php echo esc_url($termLink); ?>">
<?php echo esc_html($termName); ?>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php endif;
リンクつきカテゴリー表示詳細版:完成版
<?php
/**
* タクソノミーリスト
*
* $taxonomySlug:表示対象タクソノミー
* $displayLink:リンク表示・非表示
* $displayCount:件数表示・非表示
* $unitName:件数の単位
*/
$taxonomySlug = 'category'; //表示対象タクソノミー
$displayLink = true; //リンク表示・非表示
$displayCount = false; //件数表示・非表示
$unitName = '件'; //件数の単位
$termData = wp_get_object_terms($post->ID, $taxonomySlug);
?>
<?php if ($termData) : ?>
<ul class="TaxonomyList">
<?php
foreach ($termData as $termDataObj) :
$termID = $termDataObj->term_id;
$termSlug = $termDataObj->slug;
$termName = $termDataObj->name;
$termCount = $termDataObj->count;
$termCountStr = '';
if ($displayCount) {
$termCountStr = '<span class="TaxonomyList__count">';
$termCountStr .= $termCount . $unitName;
$termCountStr .= '</span>';
}
$termLink = get_category_link($termID);
?>
<li class="TaxonomyList__item -term<?php echo esc_attr($termID); ?>">
<?php if ($displayLink) : ?>
<a class="TaxonomyList__link" href="<?php echo esc_url($termLink); ?>">
<span class="TaxonomyList__name">
<?php echo esc_html($termName); ?>
</span>
<?php echo wp_kses_post($termCountStr); ?>
</a>
<?php else : ?>
<span class="TaxonomyList__span">
<span class="TaxonomyList__name">
<?php echo esc_html($termName); ?>
</span>
<?php echo wp_kses_post($termCountStr); ?>
</span>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php endif;
リンクつきカテゴリー表示詳細版:モジュール版
_TaxonomyList.php
<?php
/**
* タクソノミーリスト
*
* $taxonomySlug:表示対象タクソノミー
* $displayLink:リンク表示・非表示
* $displayCount:件数表示・非表示
* $unitName:件数の単位
*/
$termData = wp_get_object_terms($post->ID, $taxonomySlug);
?>
<?php if ($termData) : ?>
<ul class="TaxonomyList">
<?php
foreach ($termData as $termDataObj) :
$termID = $termDataObj->term_id;
$termSlug = $termDataObj->slug;
$termName = $termDataObj->name;
$termCount = $termDataObj->count;
$termCountStr = '';
if ($displayCount) {
$termCountStr = '<span class="TaxonomyList__count">';
$termCountStr .= $termCount . $unitName;
$termCountStr .= '</span>';
}
$termLink = get_category_link($termID);
?>
<li class="TaxonomyList__item -term<?php echo esc_attr($termID); ?>">
<?php if ($displayLink) : ?>
<a class="TaxonomyList__link" href="<?php echo esc_url($termLink); ?>">
<span class="TaxonomyList__name">
<?php echo esc_html($termName); ?>
</span>
<?php echo wp_kses_post($termCountStr); ?>
</a>
<?php else : ?>
<span class="TaxonomyList__span">
<span class="TaxonomyList__name">
<?php echo esc_html($termName); ?>
</span>
<?php echo wp_kses_post($termCountStr); ?>
</span>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php endif;
読み込むテンプレート.php
<?php
set_query_var('taxonomySlug', 'category');
set_query_var('displayLink', false);
set_query_var('displayCount', false);
set_query_var('unitName', '');
get_template_part('parts/_TaxonomyList');
?>
同じカテゴリーのコンテンツ