水曜以外もどうでしょう

北海道発。食べ歩きの記録グルメ情報や北海道の見どころなどをメモ替わりに書いています。

2015年06月 | ARCHIVE-SELECT | 2015年08月

| PAGE-SELECT |

≫ EDIT

Advanced Custom Fieldsでセレクトボックスで値とラベルを取得する

WordPressのAdvanced Custom Fieldsのセレクトボックスで

下記のように記述すると、値とラベルの両方を制御することができます。
red : 赤
blue : 青

と記載がある。

the_fieldやget_fieldで取り出せるのは、左側の「red」や「blue」の方なんですよね・・。

the_field('fild_name');

これで、「赤」や「青」の方を取り出したいという話です。
この場合、redやblueが値で、赤や青をラベルというのかな?

さて、参考ページ。
参考ページ)
https://ja.forums.wordpress.org/topic/25364

参考ページのままなんですが、下記の方法でラベル側が取り出せる。

$field = get_field_object('field_name');
$value = get_field('field_name');
$label = $field['choices'][ $value ];

ただ・・・・
私の環境では、投稿(post)ではなくユーザー情報にカスタムフィールドを追加していました。
そんな訳で、同じコードを書いても
なんか、できないなー、できないなー、DBの仕様が変わったか?
と思っていました。

私の場合、author.phpを書き換える案件だったのですが、
かなり試行錯誤した結果、ユーザー情報の場合下記のコードで実現できた。
$uid = $author;
$field = get_field_object('field_name', 'user_' . $uid);
$value = get_field('field_name', 'user_' . $uid);
$label = $field['choices'][ $value ];

$authorには、http://examples.com/?author=2
などで指定したユーザID(例では2)が入っている。

get_fieldの方にユーザIDを引数で渡すことは既にわかってやっていたのに、get_field_objectでもおんなじことをやれば良かったんだよね。時間をかけてお馬鹿さんです。


これが、うまくいかなかったもんだから、自分で関数まで作ってしまった。
あまり美しくないし結局使わなかったのだが。
wp_postから、post_type=acfのpostを取り出し、post_titleで検索する。
post_titleはAdvanced Custom Fieldsで自分で付けたフィールドグループ名ですね。
それで、ACFのpost_idを取得。
それから、ACFのpost_idを使って、wp_postmetaからセレクトボックスの情報をとりだす。
一応貼っておこう。

★関数側

function get_acf_field( $group, $name ) {
    $target_field = array();
    $found_posts = get_posts( array('post_type'=>'acf') );
    foreach( $found_posts as $p ) {
        if( $p->post_title == $group ) {
            $acf_id = $p->ID;
            break;
        }
    }
    if( $acf_id ) {
        $fields = get_post_meta($acf_id);
        foreach( $fields as $f ) {
            $meta = unserialize($f[0]);
            if( $meta['name'] == $name ) {
                $target_field = $meta;
                break;        
            }
        }
    }
    return $target_field;
}


★利用側
フィールドグループ名とフィールド名を渡す

$field = get_acf_field('group_name', 'field_name');
$value = get_field('field_name', 'user_' . $uid);
echo $field['choices'][$value];



ちなみに、下記の書き方で、コロンの左右に半角スペースが必要なんです。これ間違うとちゃんと入りません。
red : 赤
blue : 青
スポンサーサイト
応援宜しくお願いします。ポチ↓↓
fC2ブログランキング にほんブログ村 グルメブログ 北海道食べ歩きへ 人気ブログランキングへ


| 未分類 | 21:29 | comments:0| trackbacks:0| TOP↑

≫ EDIT

iPad Air 2を手に入れる

iPad Air 2を手に入れた。どうしても仕事で使う用事ができて。
発売から時間がたってしまったし、秋にはまた新しいのがでるかもね。でもいいんです。

iPad Air 2を手に入れる

白い箱。
Appleの箱はワクワクしますね。
箱には「Air 2」と書いていないんですね。ちょっと心配(笑)。

iPad Air 2を手に入れる

iPad Air 2を手に入れる

付属品は、Lightning USBケーブルとACアダプタとちょっとした説明書。
色はゴールドにしました。少しだけピンクっぽいゴールド。

別で、左から液晶保護フィルム、持ち運び用にUSBケーブルを一本追加、ケースを購入。

iPad Air 2を手に入れる

携帯スマートフォンを含めて、初めて強化ガラスの保護フィルムを買ってみた。
「【riseシリーズ】ipad air/ipad air2 液晶保護強化ガラスフィルム ガラスフィルム 硬度9H 超薄0.33mm」 購入時999円
当たり前かもしれないが、ガラスなので曲がりません。
貼るときはいつも緊張しますよね。
保護フィルムに付属の布でiPadの画面を拭いて油とほこりを取る。でも、箱を空けた直後でiPad自身にもビニールがかかっていたから、拭くことによって余計ほこりがつきました。
なので、エアブロワー(スプレー)でほこりを吹き飛ばし、画面にホコリが落ちる前に手際よく貼りました。

気泡なく、いままでで一番うまく貼れたかも。
フィルムが曲がらないっていうのはイイかもしれない。
空気を入れないように、というのも大事だけど気をつけるのはホコリですよね。

さて、貼った後ではあるが重さを計測。

iPad Air 2を手に入れる

仕様では本体が437gで、フィルム合わせて、482gになりました。
持った感じ、噂以上に軽い。

iPad Air 2を手に入れる

ちょっとしたスーツケースみたいな見栄えですね。

保護ケースをつけると692g。
軽いケースを選んだんですが、437gから比べると1.5倍で重くなったと感じてしまいます。
人間はぜいたくなもので・・・十分軽いんですけどね。
ただ、自分の使い方だと持ち運びが少ないので、触り心地が気に入っているシリコンケースの選択肢もあったかな。
まぁ少し使ってみよう。

今回買ったのはケースはこれ。
「【全5色】IVSO オリジナルApple iPad Air 2 (2014) (Apple iPad Air 2 (2014) だけ 適用) 専用スマートケース 」 購入時1,300円

iPad Air 2を手に入れる

カバーで、iPadが立ちます。
ボタン部分、コネクタ部分は開いています。

あとは、出先とか車での充電に使おうと思いUSBケーブルをもう一本。
「ライトニング ケーブル USB 充電 コード Apple 認証(Made for iPhone) 取得」 購入時799円

iPad Air 2を手に入れる

右が純正付属品、左が別売り。
付属のケーブルとまぁ見た目はそんなに変わりません。
純正にもリンゴマークはついていませんでした。

少しでも安く買いたい場合には、Appleストア以外で買うのも手かと。
付属品もApple純正ではないものを選びました。

今回購入したものは↓こちらです。



次回、初期設定から使用までを書こうかと。






応援宜しくお願いします。ポチ↓↓
fC2ブログランキング にほんブログ村 グルメブログ 北海道食べ歩きへ 人気ブログランキングへ


| 未分類 | 14:35 | comments:0| trackbacks:0| TOP↑

| PAGE-SELECT |