Ich habe eine Reihe von Standardargumenten, in die ich Werte übergebe. Alle funktionieren, wenn es um Ordnung und Ordnung geht, außer für member_count
was in der Datenbank gespeichert ist, wird aber als String gespeichertmuss sich wie eine Zahl verhalten. Aus diesem Grund habe ich den Typ als numerisch festgelegt und vermute, dass das SQL-Casting funktioniert, wenn Sie den Abgleich durchführen, aber nicht, wenn Sie die Bestellung ausführen. Nur eine Vermutung.
public $default_args = array(
"post_type" => "clans",
"post_status" => "publish",
"posts_per_page" => -1,
"s" => "",
"post__in" => "",
"orderby" => "",
"order" => "",
"date_query" => array(
"before" => "",
"after" => "",
"inclusive" => true
),
"meta_query" => array(
"relation" => "AND",
"average_skill_level" => array(
"key" => "average_skill_level",
"compare" => "EXISTS",
),
"activity_level" => array(
"key" => "activity_level",
"compare" => "EXISTS",
),
"language" => array(
"key" => "language",
"compare" => "EXISTS",
),
"applications" => array(
"key" => "applications",
"compare" => "EXISTS",
),
"member_count" => array(
array(
"key" => "member_count",
"compare" => ">=",
"type" => "NUMERIC"
),
array(
"key" => "member_count",
"compare" => "<=",
"type" => "NUMERIC"
)
)
)
);
einige der Werte, die ich für orderby gesetzt habe, waren member_count
und meta_value_num member_count
und natürlich DESC
und ASC
zur Bestellung
Antworten:
0 für die Antwort № 1"member_count" => array(
"member_min" => array(
"key" => "member_count",
"compare" => ">=",
"type" => "NUMERIC"
),
"member_max" => array(
"key" => "member_count",
"compare" => "<=",
"type" => "NUMERIC"
)
)
Ich benannte die beiden Arrays in member_count und endete nach diesen Schlüsseln.