WP Abfrage benutzerdefinierte Reihenfolgeby nicht benutzerdefinierte Feld

Ich arbeite an einer Produktarchivseite, wo ich 20 Produkte auf jeder Seite mit Paginierung zeige.

Der Preis jedes Produkts wird von einer Formel berechnet, die ihre Parameter anhand der in der database gespeicherten Daten erhält. Es funktioniert auf diese Weise (und nicht in benutzerdefinierten Feldern mit jedem Produkt gespeichert), denn dann können wir einige Daten in unserer database ändern und alle Produktpreise werden geändert.

Das Problem ist, dass ich jetzt nicht nach Metaschlüssel und Wert sortieren kann. Also habe ich versucht, den Preis zum abgefragten Posts-Array hinzuzufügen und es dann nach dem Preis zu sortieren. Wenn Sie jedoch Seitenumbruch verwenden, bestellen Sie nur die ersten 20 Artikel nach Preis. Die nächste Seite zeigt Produkte mit einem niedrigeren Preis als Produkte auf der ersten Seite.

Erste Seite 20 Artikel:

  • Produkt 10,00
  • Produkt 12,00
  • Produkt 15,00
  • Produkt 18,00
  • etc.

Zweite Seite 20 Artikel:

  • Produkt 11,00
  • Produkt 14,00
  • Produkt 15,00
  • Produkt 19,00
  • etc.

Ich denke, ich muss die Abfrage in einem früheren Stadium ändern, zum Beispiel mit dem Parameter ‘orderby’. Aber ich kann nur nach benutzerdefinierten Feldern suchen, und das ist nicht das, wonach ich suche.

Weiß jemand, dass es einen Haken gibt, um eine benutzerdefinierte Orderby-function zur wp-Abfrage hinzuzufügen?

Mein Code:

// Get pages page for pagination $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; // Query arguments $args = array( 'post_type' => 'products', 'posts_per_page' => 20, 'paged' => $paged ); // Create object $products = new WP_Query( $args ); // Add price to each product foreach( $products->posts as $product ) { $price = price_calulate_function( $product->ID ); $product->price = $price; } // Sort by price uasort( $products->posts, function( $a, $b ) { $a = $a->price; $b = $b->price; if( $a == $b ) { return 0; } return ( $a have_posts() ) { while( $products->have_posts() ) { $products->the_post(); // Show product } } 

Solutions Collecting From Web of "WP Abfrage benutzerdefinierte Reihenfolgeby nicht benutzerdefinierte Feld"