私はWordpressデータベースのものを取り出し、さまざまな方法で処理するツールを開発中です。私がやったことの1つは$category
と呼ばれる単純な配列を構築することです。この配列にはwp_terms where term_id = <what the user picked>
という内容が含まれています。アレイの再構築
残念ながら、それは私が欲しいものがすべて含まれていないので、$category->taxonomy
にもwp_term_taxonomy where term_id = <what the user picked>
の関連情報が入力されています。それは1対1の関係なので、問題はありません。
しかし、私はまたwp_termsmeta
に必要なものをたくさん持っています。そこには、複数の行と1対多の関係があり、同じterm_id
があります。その後、我々は$category
にwp_terms
からterm_id
、name
、slug
、およびterm_group
を持って
{
"term_id" : 9813,
"name" : "Who's Who",
"slug" : "ww",
"term_group" : 0,
"taxonomy" :
{
"term_taxonomy_id" : 9832,
"term_id" : 9813,
"taxonomy" : "category",
"description" : "Who's Who is the CSICON Network's very own show about Doctor Who!",
"parent" : 0,
"count" : 58
},
"meta" : [
{
"meta_id" : 8490,
"terms_id" : 9813,
"meta_key" : "hosts",
"meta_value" : "1, 2"
},
{
"meta_id" : 8492,
"terms_id" : 9813,
"meta_key" : "thumbnail",
"meta_value" : "http://csicon.fm/wp-content/uploads/2015/12/ww_4-248x248.jpg"
}
]
}
、$category->taxonomy
における原料の束と、その後$category->meta
の下で、物事の束:だから私が取得することは、このようなものです。
ここで問題です。
サムネイルURLにアクセスしたい場合は、$category->meta[1]->meta_value
に移動する必要がありますが、それが[1]
であることはいつもわかりません。他のカテゴリの場合は、[0]
または[2]
となります。私が知っているのは、それがmeta_key = thumbnail
の[n]
だということだけです。
理想的には、私はそう$category->thumbnail
は現在、そこに格納されているmeta_value
を返す、meta
を反復処理し、単に$category
下の「本当の」キーとして各meta_key
の値を保存するための良い方法をしたいと思う...しかし、私は落ち着くだろう確実に特定のmeta_key
のために右を見つける信頼できる方法でmeta_value
を使用してください。
どのような考えですか? :)
は
感謝を解決しよう! $category['meta'] = Category::find($term_id)->catMeta;
の代わりに、次のコードを実行しています。
$metaTemp = Category::find($term_id)->catMeta;
$metaTable = json_decode(json_encode($metaTemp), FALSE);
foreach($metaTable as $key => $value) {
$category[$value->meta_key] = $value->meta_value;
}
複数のエントリがmeta_keyを共有できる場合は、メタオブジェクトプロパティとしてオブジェクトではなく配列を持つことになります。 – Weltschmerz
これは私を正しい方向に向かわせ、うまくいった解決策を見つけました!元の投稿が編集されました。 –