【WordPress・PHP】タグ一覧、カテゴリー一覧をランダムで表示|shuffle関数
今回は、WordPressのサイト内で使用しているカテゴリー名の一覧、タグ名の一覧をランダムで表示する例となります。
また、例で表示するカテゴリー名・タグ名の一覧は、それぞれのアーカイブページへのリンク付きとなります。
タグ名の一覧をランダムで表示して出力
以下がソースコードの例となり、タグ一覧をランダムで表示させたい場所に記述します。
<?php
$posttags = get_tags();
// 配列をシャッフル
shuffle( $posttags );
if ( $posttags ){
echo ' <ul class="tag-list"> ';
foreach( $posttags as $tag ) {
echo '<li><a href="'. get_tag_link( $tag->term_id ) . '">' . $tag->name . '</a></li>';
}
echo ' </ul> ';
}
?>
上記例で使用したWordPress関数のget_tagsはタグのオブジェクトを配列として返します。
そのget_tags関数はデフォルトの状態では、タグのオブジェクトを名前の昇順で返しますが、今回はランダムの状態でタグオブジェクトを扱いたいため、配列をシャッフルするPHP関数のshuffleを使い、get_tags関数で取得した配列をシャッフルしています。
そして、シャッフル後にforeachループを使用しget_tags関数から取得した値を元に、タグ一覧をリンク付きで作成して出力しています。また、リンク先はそれぞれのタグのアーカイブページとなります。
カテゴリー名の一覧をランダムで表示して出力
以下がソースコードの例となり、カテゴリー一覧をランダムで表示させたい場所に記述します。
<ul class="category-list">
<?php
$categories = get_categories();
// 配列をシャッフル
shuffle( $categories );
foreach( $categories as $category ){
echo '<li><a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a> </li> ';
}
?>
</ul>
上記例で使用したWordPress関数のget_categoriesはカテゴリーのオブジェクトを配列として返します。
そのget_categories関数はデフォルトの状態では、カテゴリーのオブジェクトを名前の昇順で返しますが、今回はランダムの状態でカテゴリーオブジェクトを扱いたいため、配列をシャッフルするPHP関数のshuffleを使い、get_categories関数で取得した配列をシャッフルしています。
そして、シャッフル後にforeachループを使用しget_categories関数から取得した値を元に、カテゴリー一覧をリンク付きで作成して出力しています。また、リンク先はそれぞれのカテゴリーのアーカイブページとなります。
get_tags、get_categories関数について
今回の例では、get_tags、get_categories関数はデフォルトの状態で使用しましたが、パラメータを指定して、その条件を元にそれぞれのデータを取得することもできます。詳しくは以下のリンク先を参考にしてみてください。