it-swarm.com.de

Beiträge nach Meta-Wert und Datum sortieren

Ich versuche, Posts basierend auf einem Post-Metawert und Datum zu sortieren. Ich benutze dieses Plugin ( https://github.com/JonMasterson/WordPress-Post-Like-System ), um meinen Posts ein ähnliches System 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 Metaschlüssel _post_like_count hinzu, wenn mindestens eine Person den Beitrag mag. Der obige Code gibt nur Posts zurück, die mindestens eine Anzahl wie (z. B. 3 von 15) haben.

Wie bekomme ich die restlichen Posts, die keinen Metaschlüssel haben und sortiere sie nach dem Datum?

1
Arjun S Kumar

Wenn Sie möchten, dass beide Posts einen Metaschlüssel haben und nicht, benötigen Sie eine OR-Beziehungs-Metaabfrage, um sowohl Posts mit Schlüssel als auch solche auszuwählen, bei denen dieser nicht existiert.

$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 );
1
Milo