/ / Custom WP_Query - Meta_query ignoriert - Benutzerdefinierte Felder, WordPress

Benutzerdefinierte WP_Query - Meta_query ignoriert - Benutzerdefinierte Felder, WordPress

Ich möchte einige "Kunstwerke" mit spezifischen Meta-Schlüsselwerten anzeigen. Jedes Kunstwerk hat ein eigenes Feld: "votes_average" und ein weiteres "votes_count". Dies ist meine benutzerdefinierte Abfrage:

$args = array(
"post_type" => "artworks",
"post_status" => "publish",
"orderby" => "meta_value_num",
"order" => "DESC",
"meta_query" => array(
"relation" => "AND",
array(
"key" => "votes_average",
"value" => "6",
"compare" => ">=",
"type"    => "DECIMAL",
),
array(
"key" => "votes_count",
"value" => "1",
"compare" => ">",
"type"    => "NUMERIC",
),
),
"tax_query" => array(
array(
"taxonomy" => "type",
"field" => "slug",
"terms" => $term
)
)
);

Ich verstehe nicht, warum diese Abfrage ein Kunstwerk mit einem Durchschnitt von 5,8 anzeigt. Habe ich einen Fehler gemacht?

Antworten:

0 für die Antwort № 1

Das Problem ist, dass MySQL 5,8 auf 6 gerundet und in der Abfrage verwendet wurde. Ein entsprechender Abfrageteil sieht so aus

(wp_postmeta.meta_key = "votes_average" AND CAST(wp_postmeta.meta_value AS DECIMAL) >= "6")

Sie können DECIMAL durch NUMERIC ersetzen, um dieses Problem zu lösen.

    array(
"key" => "votes_average",
"value" => "6",
"compare" => ">=",
"type"    => "NUMERIC",
),