WordPress

【wordpress】毎回ランダムでタグ名を選んで、関連する記事を表示させる

やりたいこと

1, ページを更新する度にランダムでタグ名がひとつ表示される
2, その下にタグに関連する記事を3記事(サムネイルと抜粋文)表示させる

img.jpg

以下を記述

index.php
<?php
    $args = array(
        'fields' => 'ids',
    );
    $tags_array = get_tags( $args ); //タグIDのリストを取得

    $tag_id     = array_rand( $tags_array, 1 ); //タグIDのリストからランダムに一つだけIDを取り出す
    $tag_data   = get_term_by('id', $tag_id, 'post_tag'); //タグの情報を取得
    $tag_name   = $tag_data -> name; //タグ名
    $tag_slug   = $tag_data -> slug; //タグスラッグ
?>

<!-- ランダムでタグ名表示 -->
<h1># <?php echo($tag_name); ?></h1>

<!-- タグに関連する記事を表示 -->
<?php
    $args = array(
        'post_type'      => 'post',
        'tag'            => $tag_slug,
        'posts_per_page' => 3
    );
    $the_query = new WP_Query( $args );
?>
<?php if ($the_query->have_posts()) : ?>
<ul>
    <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
    <li>
        <a href="<?php the_permalink(); ?>">
            <?php if (has_post_thumbnail()) : ?>
                <div style="background-image: url(<?php echo wp_get_attachment_url( get_post_thumbnail_id() ); ?>);"></div>
            <?php endif; ?>
            <p><?php the_excerpt(); ?></p>
        </a>
    </li>
    <?php endwhile; else : ?>
</ul>
<?php endif; ?>
<?php wp_reset_query(); ?>

参考記事:
関数リファレンス/get tags
【PHP】配列・連想配列からランダムに要素を取得する
【WordPress】タグIDをもとにスラッグ名とタグのアーカイブページへのリンクを出力する