2017-09-21 1 views
0

Ich benutze das Custom Field Suite-Plugin, um Beiträge auf meiner Seite hinzuzufügen. Auf meiner Seite werden die Beiträge mit dem folgenden Code alphabetisch nach Titel angezeigt (weil sie im Widget im Seiteneditor standardmäßig alphabetisch geordnet sind, aber auch manuell verschoben werden können).So bestellen Sie Posts nach Datum - ziehen Post-ID von wp_query und benutzerdefiniertes Feld

Allerdings möchte ich sie nach Datum veröffentlicht angezeigt. Hier

ist das benutzerdefinierte Feld Suite Feldtyp Ich verwende: http://customfieldsuite.com/field-types/relationship.html

Mein Code

// The Query 
$archive = CFS()->get('archive'); //getting posts from widget 

foreach ($archive as $post_id) { 
    $the_post1 = get_post($post_id); 
    $the_post = $the_post1->ID; 

$the_query2 = new WP_Query(array(
'p' => $the_post, 
'orderby' => 'date', //this isn't working 
'order' => 'ASC' 
)); 

// The Loop 
if ($the_query2->have_posts()) { 
    echo '<ul>'; 
    while ($the_query2->have_posts()) { 
     $the_query2->the_post(); 
     echo '<li>' . get_the_title() . '</li>'; 
    } 
    echo '</ul>'; 
    /* Restore original Post Data */ 
    wp_reset_postdata(); 
} else { 
    // no posts found 
} 
} 
+0

Warum haben Sie diesen Code ' 'p' => $ the_post,' der Linie 9 Es sieht aus wie es dort nicht hingehört. – Kodaloid

+0

Ich habe es hier gefunden, im ersten Beispiel: https://codex.wordpress.org/Class_Reference/WP_Query#Post_.26_Page_Parameters – touto

+0

basierend auf dem Dokument, das Sie verbunden sind, wird der 'p' Parameter nur übergeben, wenn Sie Informationen über abrufen möchten 1 spezifischer Artikel nicht mehrfach. Ich stehe zu dem, was ich gesagt habe, das ist Teil der Sache. – Kodaloid

Antwort

1

Sie alle IDs innerhalb eines Arrays speichern kann dann für sie in Ihrem WP_Query suchen, und Sie können Sparen Sie sich Platz, ohne $ the_post1 und $ the_post zu deklarieren, da Sie bereits Ihre Post-ID erhalten haben.

$archive = CFS()->get('archive'); //getting posts from widget 

$posts = new array(); 

foreach ($archive as $post_id) { 
    array_push($posts, $post_id); 
} 

$the_query2 = new WP_Query(array(
    'post_type' => 'post', 
    'post__in' => $posts, 
    'orderby' => 'date', //this isn't working 
    'order' => 'ASC' 
)); 

// The Loop 
if ($the_query2->have_posts()) { 
    echo '<ul>'; 
    while ($the_query2->have_posts()) { 
     $the_query2->the_post(); 
     echo '<li>' . get_the_title() . '</li>'; 
    } 
    echo '</ul>'; 
    /* Restore original Post Data */ 
    wp_reset_postdata(); 
} else { 
    // no posts found 
} 

Für zukünftige WP_Query Rerefence: https://codex.wordpress.org/Class_Reference/WP_Query

+0

Danke, aber ich bekomme diesen Fehler: Parse-Fehler: Syntaxfehler, unerwartete 'Array' (T_ARRAY). Wenn ich $ posts = new Array(); lösche, geht es weg und alles scheint zu funktionieren. – touto

+0

Es war ein neues Array(); Sorry, nicht Großbuchstaben, nur behoben. –

Verwandte Themen