ACFでTaxonomyの返り値オブジェクトに設定してしまった際に、meta_queryで一覧を出したい

Expressoにコンストラクタの概念はないんだった。Rustと同じでC#のオブジェクト初期化子のように、フィールド名を明示して初期化する構文しか用意してない
オブジェクト毎に使用回数決まってる(1人ではなくフィールドで)
ギラバニア山岳地帯のアラギリでフィールド上のオブジェクトにはまって出られなくなった
セーブポイント大別 1、どこでも可 ポケモン、ロマサガ、FFのフィールド上など 2、特定のオブジェクト バイオのタイプライター、サイレントヒルの赤いポスター、ドラクエの教会 3、オートセーブ式なので存在しない
浮上というか、浮遊オブジェクトや実際二段階にわかれてるけど、下段は補助としての未使用領域でできてるフリーフィールドだとうっかり特定のPaやらモーションで引っかかって下段に落ちることある。浮上施設が特になる、遺跡でボスエネミー・ダーカーのテレポもオブジェクトにぶっささることもあった
お兄ちゃん,そのcloneの定義だとフィールドの参照先まではコピーされないから,一方のオブジェクト経由でフィールドの参照先を操作したら他方のオブジェクトにも影響があるよね?浅くていいのはお兄ちゃんの知恵だけだよ?
フィールドのやつは、別レイヤーにオブジェクトを作ってリンク複製をしてひたすら配置するチュートリアル。岩をポリゴン数を削減をかけたままスカルプトで形を作ってたのが面白かった。
クラスのフィールドを定義した順番に、オブジェクト生成式も書いてくれると仮定して作ってしまおうかな…… 順番変えられるようにするとなると、めちゃくちゃ面倒だ……

ACFのオブジェクトの返り値を使って一覧を出したい

アドバンスドカスタムフィールドを使って、記事と別のタクソノミーを連携した際にの記事一覧の出し方について、当たった問題と解決策を書いてきます。

フィールド設定をタームIDにした時

タームIDを使用した際の記事一覧は、

$args = array(
  'meta_query' => array(
    array(
      'compare' => 'LIKE',
      'key'     => "acf_taxonomy" // 設定したキー
      'value'   => 41 // 取得したい値
    )
  )
);

で取得できます。

フィールド設定をオブジェクトにした時

タームIDをオブジェクトにした際、設定したのフィールド名をacf_taxonomyとすると、
ここに入っている値はWP_Termsというオブジェクトが配列で入っています。

ですので、タームIDと同じようにはいきません。

オブジェクトで入っていると説明をしましたが、
記事に入っている情報acf_taxonomyの中身をみてみると

'a:6:{i:0;s:2:"41";i:1;s:2:"56";i:2;s:2:"74";i:3;s:1:"2";i:4;s:1:"4";i:5;s:1:"3";}'

みたいな感じで入っています。

このダブルコーテーションで囲まれてる"41"などが、オブジェクトのterm_idになります。
なので、この文字列に「取得したいIDが、ダブルコーテーションで囲まれて入っていれば取得」という形を取ります。

$args = array(
  'meta_query' => array(
    array(
      'compare' => 'LIKE',
      'key'     => "acf_taxonomy"
      'value'   => '"41"' // "41"という文字列を探す
    )
  )
);

これで特定の値をもった記事を探す事ができます。

もしかしたらタクソノミーだけでなく、投稿とかでもつかえるかも・・・(要検証)

ACFでつまったら

たまに検索しても解決策が見つからない場合があります。
その際、

var_dump( get_post_meta($post->ID,) );

を記事が出力される箇所にいれて、
どのフィールドがどのように入っているのかをみてみると、もしかしたら解決できるかも・・・!

  • コメント

    1. 匿名希望
      2017/06/25(日) 17:20:57

      Expressoにコンストラクタの概念はないんだった。Rustと同じでC#のオブジェクト初期化子のように、フィールド名を明示して初期化する構文しか用意してない

    2. 匿名希望
      2017/06/25(日) 17:20:57

      オブジェクト毎に使用回数決まってる(1人ではなくフィールドで)

    3. 匿名希望
      2017/06/25(日) 17:20:57

      ギラバニア山岳地帯のアラギリでフィールド上のオブジェクトにはまって出られなくなった

    4. 匿名希望
      2017/06/25(日) 17:20:57

      セーブポイント大別
      1、どこでも可
      ポケモン、ロマサガ、FFのフィールド上など
      2、特定のオブジェクト
      バイオのタイプライター、サイレントヒルの赤いポスター、ドラクエの教会
      3、オートセーブ式なので存在しない

    5. 匿名希望
      2017/06/25(日) 17:20:57

      浮上というか、浮遊オブジェクトや実際二段階にわかれてるけど、下段は補助としての未使用領域でできてるフリーフィールドだとうっかり特定のPaやらモーションで引っかかって下段に落ちることある。浮上施設が特になる、遺跡でボスエネミー・ダーカーのテレポもオブジェクトにぶっささることもあった

    記事に戻る

関連記事