【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関数はデフォルトの状態で使用しましたが、パラメータを指定して、その条件を元にそれぞれのデータを取得することもできます。詳しくは以下のリンク先を参考にしてみてください。

参考サイト、参考書籍

PHP: shuffle – Manual

コメントまたはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。Twitterで返信する場合はコチラから。