Ich versuche, Beiträge basierend auf einem Post-Meta-Wert und Datum zu sortieren. Ich verwende dieses Plugin ( https://github.com/JonMasterson/WordPress-Post-Like-System ), um ein ähnliches System zu meinen Posts hinzuzufügen.
Der Code, den ich habe, ist wie folgt.
$args = array( 'numberposts' => 15, 'offset' => 0, 'category' => 0, 'meta_key' => '_post_like_count', 'orderby' => 'meta_value_num post_date', 'order' => 'DESC', 'post_type' => 'post', 'suppress_filters' => true ); $recent_posts = wp_get_recent_posts( $args );
Das Plugin fügt der Tabelle einen _post_like_count
, wenn mindestens eine Person den Beitrag mag. Der obige Code gibt nur Beiträge zurück, die mindestens eine gleiche Anzahl haben (sagen wir 3 von 15).
Wie bekomme ich die verbleibenden Beiträge, die nicht den Metaschlüssel haben, und sortiere sie nach dem Datum?
Wenn Sie beide Posts haben möchten, die einen Meta-Schlüssel haben und nicht haben, benötigen Sie eine Meta-Abfrage für die OR
Verknüpfung, um sowohl Posts mit Schlüssel als auch solche, bei denen sie nicht existiert, auszuwählen.
$args = array( 'meta_query' => array( 'relation' => 'OR', array( 'key' => '_post_like_count', 'compare' => 'EXISTS' ), array( 'key' => '_post_like_count', 'compare' => 'NOT EXISTS' ) ), 'orderby' => 'meta_value_num post_date', 'order' => 'DESC' ); $recent = new WP_Query( $args );