WordPress-Metaabfrage funktioniert nicht mit Dezimaltyp

Lesezeit: 1 Minute

Ich versuche, eine benutzerdefinierte WordPress-Abfrage zu schreiben ( WP_Query ), das Beiträge nach Bewertungslimit filtert. Diese Bewertung ist eine Zahl zwischen 0 und 10 und möglicherweise auch Gleitkommazahlen (6,8 zum Beispiel). Ich habe diesen Code ausprobiert, aber er funktioniert nicht 🙁

<?php
$ratings = array( 4, 7 ); // this is an example , ratings are dynamic

$args = array(
    'post_type'  => 'product',
    'showposts'  => -1,
    'meta_query' => array(
        array(
            'key'     => 'aps-product-rating-total', // floating number
            'value'   => $ratings,
            'type'    => 'DECIMAL',
            'compare' => 'BETWEEN'
        )
    );
);

$filter_result = new WP_Query( $args );
?>

  • Ausgabe von $filter_result->request gedruckt; wäre nützlich. Sie erhalten den vollständigen SQL-Code, sodass das Debuggen einfacher ist. Versuchen Sie auch, eine Abfrage in phpMyAdmin oder einem anderen MySQL-Tool auszuführen.

    – m.cichacz

    1. September 2015 um 9:14 Uhr


Die Antwort ist einfach: Entfernen Sie das Attribut „type“ und die Suche berücksichtigt Ihre Dezimalstellen. Ich habe dies gelernt, indem ich die von m.cichacz vorgeschlagene Abfrage ausgegeben habe. Sie können sehen, dass es eine Typumwandlung in den Feldern gibt, wenn entweder NUMERIC oder DECIMAL angegeben ist, aber aus irgendeinem Grund führt dies dazu, dass die Abfrage alles nach der Dezimalstelle ignoriert. Entfernen Sie die Typumwandlung und es funktioniert.

  • Danke dafür. Hat mir Kopfschmerzen erspart.

    – Henrik Petterson

    22. Juni 2018 um 13:20 Uhr

1092280cookie-checkWordPress-Metaabfrage funktioniert nicht mit Dezimaltyp

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy