WordPress 自分メモ – archive.phpのカンニングらくがき

前提
| 投稿 ラベル「投稿」 スラッグ「post」 └category └カテゴリー名「未分類」 カテゴリースラッグ「nocategory」 カテゴリーID「1」  | 
カスタム投稿 ラベル「お知らせ」 スラッグ「topics」 └topics_cat └ターム名「スケジュール」 タームスラッグ「schedule」 タームID「3」  | 
※人によっては「topics_cat」じゃなくて「topics_category」だったりするかと思うので、いい感じに該当箇所書き換えてください。
$thisterm = get_queried_object();
if(is_category()) {
  $thistax      = $thisterm->taxonomy;
  $thispt       = 'post';
  $thisp_slug   = $thisterm->slug;
  $thispt_label = esc_html(get_post_type_object(get_post_type())->label);
  $thispt_slug  = esc_html(get_post_type_object(get_post_type())->name);
  $thisp_label  = $thisterm->name;
  $thisp_id     = $thisterm->term_id;
} else if(is_tax()) {
  $thistax      = $thisterm->taxonomy;
  $getthispt    = explode('_', $thistax);
  $thispt       = $thispt[0];
  $thisp_slug   = $thisterm->slug;
  $thispt_label = esc_html(get_post_type_object(get_post_type())->label);
  $thispt_slug  = esc_html(get_post_type_object(get_post_type())->name);
  $thisp_label  = $thisterm->name;
  $thisp_id     = $thisterm->term_id;
} else {
  $thispt       = $thisterm->name;
  $thistax      = $thispt == 'post' ? 'category' : $thispt .'_cat' ;
  $thisp_slug   = $thispt;
  $thispt_label = esc_html(get_post_type_object(get_post_type())->label);
  $thispt_slug  = esc_html(get_post_type_object(get_post_type())->name);
  $thisp_label  = $thispt_label;
}
echo $thispt;
| is_category | post | 
| is_tax | topics | 
| else | post or topics | 
echo $thispt_label;
| is_category | 投稿 | 
| is_tax | お知らせ | 
| else | 投稿 or お知らせ | 
echo $thispt_slug;
| is_category | post | 
| is_tax | topics | 
| else | post or topics | 
echo $thisp_label;
| is_category | 未分類 | 
| is_tax | スケジュール | 
| else | 投稿 or お知らせ | 
echo $thisp_slug;
| is_category | nocategory | 
| is_tax | schedule | 
| else | post or topics | 
echo $thistax;
| is_category | category | 
| is_tax | topics_cat | 
| else | category or topics_cat | 
カテゴリー・ターム内のみ
echo $thisp_id;
| is_category | 1 | 
| is_tax | 3 | 
$thispt = ‘post’; などなど、あんまり改めて書く意味のないものもちょいちょいありますが、念のため。
これで何をしたいか
<h2><?=$thispt_label?>のカテゴリ一覧</h2>
<?php
$terms = get_terms($thistax);
foreach($terms as $term) {
  echo '<a href="'.get_term_link($term->slug, $thistax).'">'.$term->name.'</a>';
}
?>
とか。使い方も人生もいろいろ。



