カスタムタクソノミー

get_termsとget_the_termsの違い

<?php get_terms($taxonomy ,$args) ?> は指定されたタクソノミーに含まれるタームをすべて取得する
<?php get_the_terms($post->ID, $taxonomy); ?> は投稿に割り当てられたタームを取得する

リンク付きでターム名を表示する

<?php
$terms = get_the_terms($post->ID, 'カスタムタクソノミー名');
if ( !empty($terms) ) {
    foreach ( $terms as $term ) {
        $term_link = get_term_link($term);
        if ( !is_wp_error($term_link) ) {
            echo '<a href="' . esc_url($term_link) . '"><span>' . esc_html($term->name) . '</span></a>';
        }
    }
}
?>

このコードを書いて、リンクをクリックすると404エラーが発生します

それはパーマリンク構造が正しく更新されていないためです

WordPress管理画面の[設定]->[パーマリンク]から「変更を保存」ボタンをクリックしてください(何も変更せずに保存してOK)

パーマリンク設定が再生成され、404エラーが解決します

リンク不要でターム名のみ表示

<?php
$terms = get_the_terms($post->ID, 'カスタムタクソノミー名');
if ( !empty($terms) ) {
    foreach ( $terms as $term ) {
        echo '<span>' . $term->name . '</span>';
    }
}

home.phpに特定のタクソノミーの特定のタームの記事をのせる

<?php
    $args = array(
        post_type => 'post',
        posts_per_page => 10,
        taxonomy => [タクソノミー名],
        term => [ターム名]
    );
    $posts = new WP_Query($args);
?>
<?php
    if( $posts->have_posts() ) :
        while( $posts->have_posts() ) :
            $posts->the_post();
?>

--- 繰り返し処理 ---

<?php
    endwhile; endif; wp_reset_postdata();
?>

single.phpにタームの関連記事を載せる

<?php
    $terms = get_the_terms($post->ID, 'カスタムタクソノミーのスラッグ名');
    foreach( $terms as $term ) {
        $slug = $term->slug
    }
?>
<?php
$arg = array(
  'post_type' => 'カスタム投稿タイプのスラッグ',
  'posts_per_page' => 4,
  'orderby' => 'rand',
  'post__not_in' => array($post->ID),
  'tax_query' => array(
    array(
      'taxonomy' => 'カスタムタクソノミーのスラッグ',
      'field' => 'slug',
      'terms' => $slug
    )
  )
);

$wp_query = new WP_Query($arg);
?>

<?php if( $wp_query->have_posts() ): ?>
<?php while( $wp_query->have_posts() ): ?>
<?php $wp_query->the_post(); ?>
--- 繰り返し処理 ---
<?php endwhile; endif; ?>
<?php wp_reset_postdata(); ?>