カスタムフィールドの画像のランダム表示

○1つの投稿ページのカスタムフィールドに複数の画像を登録し、ランダムに表示。

○カスタムフィールドの追加にはAdvanced Custom Fieldsを使用。

○返り値は画像ID、プレビューサイズはサムネイルに設定。

<?php 
	$size = 'thumbnail'; //表示する画像サイズを指定
	$fields = get_fields(); //カスタムフィールドの画像を全て取得
	$fields_ex = array_diff($fields, array('')); //空の配列を削除
	$random = array_rand($fields_ex); //配列をランダムにする
	$image = wp_get_attachment_image_src($fields[$random], $size); //選ばれし画像

	if(!($random == false || $random == '')) { //画像があるかチェック
		echo '<img src="'.$image[0].'" width="'.$image[1].'" height="'.$image[2].'" />';
	}else {
		echo '画像なんてなかったんだ';
	}
?>

 if文にfalseと空の2つを指定しているのは、どちらかよくわからないから。

 空の時もあればなぜかfalseが返ってくることもあって、その条件がわからなかったので、両方入れておいただけ☆ だめにんげん。

 

 もっといいやり方があるかもしれ(略)。

 いいんだよ……とりあえず動けば……。

焼き芋備忘録

 引っ越してもうすぐ2ヶ月。

 近所のスーパーには石焼き芋が置いてあり、夕方頃に行くとあま~い匂いが漂ってきて食欲をそそられる。

 が、私は平日の帰りは大分遅いので、行く頃には既に冷めてしまっている。ラップを巻いてレンジで温めてみても、水分が飛んでパサパサになってしまっておいしくない。

 そこでちょっと工夫してみたのでメモ。

 

1. クッキングペーパーを水で濡らす。

2. 1で焼き芋を巻いて水を切る。

3. 上から別のクッキングペーパーを巻く。

4. ラップを巻く。

5. 500Wのレンジで3分温める。

 

 3はいらないかもしれないけど、程々に水分を吸ってくれるかなと思ったので念のため。

 これでふかふかになった!

 

 以下余談。

 

 このスーパーの焼き芋は紙袋に入れてあり、表面に芋の種類がマーカーで書かれている。

 私は昔漫画などで見かけた、紙袋に入った焼き芋を食べながら帰宅するというシーンに地味に憧れていたので、初めて見た時は子供のように感動した。

 忘れた頃に思いがけず昔の小さな夢が実現すると、本当にあったか~い気持ちになる。食べるのは帰ってからだけど(笑)。

 そういえば軽トラの屋台?で買うのも夢なので、見かけたらダッシュしようと思っている。

複数カテゴリ対応のパンくず

 パンくずの関数やプラグインなんて山ほどあるし、複数カテゴリ対応のコードも見かけるけど、自分の希望の形になるものがなかったので作ってみた。

 複数カテゴリに対応させたもので、楽天のようにずらずら出てくるあれ。

 

 ホーム > カテゴリ1 > 記事タイトル

 ホーム > カテゴリ2 > 記事タイトル

 

 こんなやつ。投稿時にチェックを入れたカテゴリを全て表示する。

 2パターンあるけど、とりあえずノーマルな形のものをぺたり。

 

 function.phpに記述↓

function bcNavi() {
    $category = get_the_category();
    foreach($category as $cat){
        $str. = '<ul class="bcNavi clearfix">';
        $str. = '<li><a href="'. home_url() .'">HOME</a></li>';
        $str. = '<li>&gt;</li>';
        if ($cat->parent) {
            $parent = get_category($cat->parent);
            $str. = '<li><a href="'. home_url() .'/?cat='. attribute_escape($parent->cat_ID) .'">'.$parent->cat_name .'</a></li>';
            $str. = '<li>&gt;</li>';
        }
        $str. = '<li><a href="'. home_url() .'/?cat='. attribute_escape($cat->cat_ID) .'">'. $cat->cat_name .'</a></li>';
        $str. = '<li>&gt;</li>';
        $str. = '<li>'. the_title() .'</li>';
        $str. = '</ul>';
    }
    echo $str;
}

※/?cat=の部分は、パーマリンク設定によって変更する必要あり。これはデフォルトの設定の場合。

 

 テンプレートに記述↓

<?php echo bcNavi(); ?>

 

 これの難点は、3階層目までしか対応していないこと。

 

 ホーム > カテゴリ1 > カテゴリ2 > 記事タイトル

 

 ここまでが限界。将来的にカテゴリがどんどん増えるページにはNG、祖先カテゴリが表示されなくなってしまう。

 

 自分はとりあえず3階層目まであれば十分だったので作り込んではいないのだけど、いずれ完成はさせた方がいい……のかな。

 でも、4階層まであるようなページはユーザビリティの面でどうかと思うので、気が向いたらやるということで(逃)。