Frage

Ich füge einem Thema Abstimmungsfunktionen hinzu. Besucher können Beiträge nach oben oder unten wählen. Ich habe eine Tabelle erstellt, um die Anzahl von Stimmen für jeden Beitrag zu speichern, und das funktioniert einwandfrei. Jetzt versuche ich, Beiträge nach ihren Stimmen zu sortieren.

Ich habe "gewählt" und "abgestimmt" Links. Zum Beispiel, wenn Sie auf "Wählen" auf einen neuen Parameter klicken sort=up wird in der URL weitergegeben.

In der Schleife, wenn der Parameter vorhanden ist und IS = "Up", möchte ich Beiträge mit Stimmen aufnehmen.

wpdb->get_results("SELECT post_id, FROM $wpdb->votes WHERE up > 5");

Hier möchte ich so etwas verwenden query_posts('sort=up') vor der Schleife. Meine Frage ist, wie ich den benutzerdefinierten "Sortier" -Parameter erstelle?

War es hilfreich?

Lösung

Wenn Sie Ihre Daten in einer separaten Tabelle haben, ist dies etwas unordentlich. Grundsätzlich müssen Sie filtern posts_where und posts_join So ändern Sie die RAW -SQL -Abfrage, damit Ihre benutzerdefinierte Tabelle mit Ihren benutzerdefinierten Werten verbunden und überprüft wird.

Gemäß [schneller :)] Anus Vorschlag wäre sinnvoll, Werte in zu speichern Benutzerdefinierte Felder und verwenden Benutzerdefinierte Feldparameter (Bezogen auf Ordenby, aber nicht dasselbe) in der Abfrage.

Andere Tipps

Ich bin mir ziemlich sicher, dass die einzige Möglichkeit, dies mit dem zu tun orderby Der Parameter besteht darin, die Stimmenwerte in einem benutzerdefinierten Feld zu speichern.

Aus dem Codex (http://codex.wordpress.org/function_reference/query_posts#ordby_parameters)

OrderBy -Parameter

  • orderby=meta_value Note: A meta_key=keyname must also be present in the query. Note also that the sorting will be alphabetical
  • orderby=meta_value_num - Order by numeric meta value (available with Version 2.8)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top