ASITIS

ブログ用のメモブログ

現在のページでカテゴリー名またはタクソノミー名を取得する方法

ループ内でカテゴリー名またはタクソノミー名を取得する方法。

ループ外は

// $taxs = get_the_terms($post->ID, $taxonomy);
$taxs = get_terms($taxonomy);

に変更すれば取得可能。

// 現在のカテゴリー(タクソノミー)名を取得
function the_cattax_names($taxonomy = 'category', $before = '', $between = '', $after = ''){
  echo get_cattax_names($taxonomy, $before, $between, $after);
}
function get_cattax_names($taxonomy = 'category', $before = '', $between = '', $after = ''){
  global $post;
  $str = '';

  $taxs = get_the_terms($post->ID, $taxonomy);
  if(!is_wp_error($taxs) && $taxs):
    $value = '';
    $first = true;
    foreach($taxs as $tax):
      $value.= ($first == false? $between: '').$tax->name;
      $first = false;
    endforeach;
    $str = $before.$value.$after;
  endif;
  return $str;
}

リンク付きで表示

// 現在のカテゴリー(タクソノミー)名をリンク付きで取得
function the_cattax_links($taxonomy = 'category', $before = '', $between = '', $after = ''){
  echo get_cattax_links($taxonomy, $before, $between, $after);
}
function get_cattax_links($taxonomy = 'category', $before = '', $between = '', $after = ''){
  global $post;
  $str = '';

  $taxs = get_the_terms($post->ID, $taxonomy);
  if(!is_wp_error($taxs) && $taxs):
    $value = '';
    $first = true;
    foreach($taxs as $tax):
      $value.= ($first == false? $between: '').'<a href="'.get_tag_link($tax->"term_id).'">'.$tax->name.'</a>';
      $first = false;
    endforeach;
    $str = $before.$value.$after;
  endif;
  return $str;
}

ループ内でカテゴリー名またはタクソノミー名を最初の一つだけ取得する方法。

// 現在の親カテゴリー(タクソノミー)名を最初の一つだけ取得
function the_cattax_name($taxonomy = 'category', $before = '', $after = ''){
  echo get_cattax_name($taxonomy, $before, $after);
}
function get_cattax_name($taxonomy = 'category', $before = '', $after = ''){
  global $post;
  $str = '';

  $taxs = get_the_terms($post->ID, $taxonomy);
  if(!is_wp_error($taxs) && $taxs):
    $tax = current($taxs);
    if($tax->parent !== 0) {
      $value = array();
      foreach($taxs as $tax):
        if($tax->parent == 0) {
          $value[] = $tax;
        }
      endforeach;
      $tax = current($value);
    }
    $str = esc_html($before).esc_html($tax->name).esc_html($after);
  endif;
  return $str;
}

リンク付きで表示

// 現在の親カテゴリー(タクソノミー)名を最初の一つだけリンク付きで取得
function the_cattax_link($taxonomy = 'category', $before = '', $after = ''){
  echo get_cattax_link($taxonomy, $before, $after);
}
function get_cattax_link($taxonomy = 'category', $before = '', $after = ''){
  global $post;
  $str = '';

  $taxs = get_the_terms($post->ID, $taxonomy);
  if(!is_wp_error($taxs) && $taxs):
    $tax = current($taxs);
    if($tax->parent !== 0) {
      $value = array();
      foreach($taxs as $tax):
        if($tax->parent == 0) {
          $value[] = $tax;
        }
      endforeach;
      $tax = current($value);
    }
    $str = '<a href="'.get_tag_link($tax->"term_id).'">'.esc_html($tax->name).'</a>';
    $str = esc_html($before).esc_html($str).esc_html($after);
  endif;
  return $str;
}