Frage

Ich entwickle ein Plugin, das im ursprünglichen Kalender hergestellt wurde. Mein WordPress basiert auf realen Ereignissen und ich möchte eine Spur von Themen im Kalender behalten.

Also habe ich ein benutzerdefiniertes Feld in der Post hinzugefügt, die das Ende der Ereignisse (oder am letzten Tag für Subricribe) mit dem Wert eines Datums (wie 25/02/2010) ist.

Jetzt möchte ich alle Ereignisse, die an den Tagen anstelle der Beiträge in jedem Tagen erstellen, auf dem Kalender anzeigen.
Wie bekomme ich den Metakatenwert des Beitrags in dieser Abfrage?

 // Get days with posts
$dayswithposts = $wpdb->get_results("SELECT DISTINCT DAYOFMONTH(post_date)
    FROM $wpdb->posts WHERE MONTH(post_date) = '$thismonth'
    AND YEAR(post_date) = '$thisyear'
    AND post_type = 'post' AND post_status = 'publish'
    AND post_date < '" . current_time('mysql') . '\'', ARRAY_N);

Es muss den gesamten Beitrag mit meinem benutzerdefinierten Metawert auswählen.

Ich hoffe, ich mache das nicht umsonst, ich habe gegoogelt und kein Plugin mit dieser Funktion kam heraus.

War es hilfreich?

Lösung

Ich denke, Sie können einen linken Join machen:

left join 
    $wpdb->postmeta my_field_meta on (p.ID = my_field_meta.post_id and 
                                      my_field_meta.meta_key = 'subscribe') 

Wo "Abonnieren" Es ist der Name Ihres benutzerdefinierten Feldes. Ihr Code könnte also sein:

 $dayswithposts = $wpdb->get_results("SELECT DISTINCT DAYOFMONTH(p.post_date)
    FROM $wpdb->posts as p
    LEFT JOIN 
        $wpdb->postmeta my_field_meta on (p.ID = my_field_meta.post_id and 
                                          my_field_meta.meta_key = 'subscribe')     
    WHERE MONTH(p.post_date) = '$thismonth'
    AND YEAR(p.post_date) = '$thisyear'
    AND p.post_type = 'post' AND p.post_status = 'publish'
    AND p.post_date < '" . current_time('mysql') . '\'', ARRAY_N);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top