カスタム投稿のリストをフィルタリングできる3つの選択ボックスがあり、オプションのすべてまたはすべてを選択してから「フィルタ」ボタンをクリックし、ページを再読み込みしてフィルタにかけた変数をクエリ文字列としてのURLこれは、私が持っている2つのカスタム分類法と完全に正常に動作します:フィルタリング後にWordpress WP_Queryをカスタムフィールド値で変更するにはどうすればよいですか?
$categories = array('company-sector', 'company-location');
foreach ($categories as $category) {
if (isset($_GET[$category]) && !empty($_GET[$category])) {
$query['tax_query'][] = array(
'taxonomy' => $category,
'field' => 'slug',
'terms' => $_GET[$category]
);
}
}
しかし、第3のフィルタ(ACFで作成したカスタムフィールド)に同じロジックを使用して、ポストのリストは変更されません。
if (isset($_GET['company-status']) && !empty($_GET['company-status'])) {
$query['meta_query'][] = array(
'key' => 'company_status',
'value' => $_GET['company-status'],
);
}
を
私は手動でそうのような初期WP_Queryにそれを追加した場合、このメタクエリは正常に動作します:
$query = array(
'post_type' => 'company-post',
'posts_per_page' => $posts_per_page,
'orderby' => 'title',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'company_status',
'value' => 'acquired'
)
)
);
しかし、変数FRを取得した後、最初のクエリにそれを追加しようクエリ文字列がうまく動作しないようですが、ここで何が間違っていますか?
//編集
これでも働いている:
$query = array(
'post_type' => 'company-post',
'posts_per_page' => $posts_per_page,
'orderby' => 'title',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'company_status',
'value' => $_GET['company-status']
)
)
);
をだから、どのように私は初期WP_Queryにmeta_queryを追加てるとは何かをする必要があります...
var_dump($ _GET ['company-status'])は期待した結果を得ていますか? – Stender
var_dump()は試していませんが、echo $ _GET ['company-status'];私が見たいものを返します。 – JFK1980
var_dump()が戻っています:string(7) "current"。 ( 'current'または 'acquired'は現在のところ2つのオプションですが、バックエンドにはACFラジオボタンとして表示されます) – JFK1980