it-swarm.com.de

Nach benutzerdefiniertem Feldwert sortieren

Ich habe eine Seite, auf der ich nur Beiträge einer bestimmten Kategorie anzeigen möchte. Gleichzeitig möchte ich, dass die Posts in meinen Posts nach einem benutzerdefinierten Feldwert sortiert werden:

query_posts('category_name=' . str_replace(" ", "", $store_name) . '&meta_key=wpfp_favorites&orderby=meta_value_num');

Die Sortierung funktioniert jedoch nicht. Die Beiträge werden nicht nach dem benutzerdefinierten Feldwert sortiert. Irgendwelche Ideen warum? Was brauche ich, damit es funktioniert?

Hinzugefügt: In einem ähnlichen Fall funktioniert es perfekt:

query_posts('tag=' . $pagetitle . '&meta_key=wpfp_favorites&orderby=meta_value_num');
2
user1635

Haben Sie versucht, den Kategorieparameter zum Testen hart zu codieren, und zusätzlich verschiedene Methoden zum Festlegen der Abfrageparameter ausprobiert?.

Z.B.

query_posts( array( 'category_name' => 'myname', 'meta_ke' => 'wpfp_favorites', 'orderby' => 'meta_value_num' ) );
query_posts( array( 'cat' => N, 'meta_key' => 'wpfp_favorites', 'orderby' => 'meta_value_num' ) );
query_posts( array( 'cat__in' => array( N ), 'meta_key' => 'wpfp_favorites', 'orderby' => 'meta_value_num' ) );

Wobei N eine numerische ID-Nummer für die Kategorie wäre.

Logischerweise sollte die Abfrageklasse sowohl eine Kategorie als auch einen Metaschlüssel akzeptieren, obwohl sie nach Metaschlüssel sortiert werden kann, kann ich keine bedingte Logik erkennen, die verhindern würde, dass diese beiden Parameter nebeneinander arbeiten.

Möglicherweise besteht ein zusätzlicher Test darin, den Parameter meta_value auf zu setzen und zu prüfen, ob dies Auswirkungen hat. Sie könnten so etwas verwenden, um zu vermeiden, dass ein bestimmter Wert zugeordnet werden muss value ist keine leere Zeichenkette

query_posts( array( 
    'cat' => N, 
    'meta_key' => 'wpfp_favorites', 
    'meta_value' => '', 
    'meta_compare' => '!=', 
    'orderby' => 'meta_value_num' 
) );

RE: Kategorie-ID abrufen .... get_cat_ID ('nameofcat') oder alternativ einen Blick auf die Bearbeitungs-URL für die Kategorie im Administrationsbereich sollte die Kategorie ID enthalten ..

:)

2
t31os

Sichern Sie die generierte SQL-Anforderung. Überprüfen Sie, ob alles in Ordnung ist, und versuchen Sie, es direkt in der Datenbank auszuführen.

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
0
Rarst