2016-07-04 4 views
0

Ich verwende das erweiterte benutzerdefinierte Felder-Plugin für WordPress, um eine Gruppe von benutzerdefinierten Beitragstypen, die ein Datum in ihnen festgelegt haben, zu erstellen.Wordpress-Ausgabe Links zu vorherigen und nächsten Beiträge von benutzerdefinierten Abfrage

Ich versuche, den vorherigen Post und den nächsten Post basierend auf dem im benutzerdefinierten Feld gespeicherten Datum anzuzeigen. Die Links müssen mit Posts verlinkt werden, die ein Datum in der Zukunft haben (also keine Links zu Posts mit abgelaufenen Daten anzeigen)/

Ich kann eine Liste aller Posts bekommen, die in der Zukunft sind und setze diese mit dem folgenden Code aus;

<?php 
    $rightnow = current_time('Ymd'); 

    $args = array(      
    'post_type' => 'Courses', 
    'posts_per_page' => '25', 
    'meta_query' => array(
     array(
      'key' => 'date_of_the_course_single_day', 
      'compare' => '>=', 
      'value' => $rightnow, 
      ) 
      ), 
    'meta_key' => 'date_of_the_course_single_day', 
    'orderby' => 'meta_value', 
    'order' => 'ASC',          
    'post_status' => 'publish' 
); 
$posts = get_posts($args); 

foreach ($posts as $post) { 
?> 
    Output details of post here.... 
<?php 
}     
?>        

Was ich dachte, was ich tun konnte, ist die die aktuelle Post Position im Array zu erhalten, um dann Details der Pfosten, bevor man zu bekommen und einen nach ... aber ich habe keine Ahnung, wie man mach das.

Ich habe mit den WordPress-Funktionen next_post_link und previous_post_link experimentiert, aber diese scheinen zu funktionieren, wenn der Beitrag zu Wordpress hinzugefügt wurde, anstatt auf Basis meines benutzerdefinierten Datumsfeldes.

Gehe ich das völlig falsch? Irgendwelche Tipps oder Hinweise würden sehr geschätzt werden!

Antwort

0

Verwenden WP_Query Plus paginate_links

$rightnow = current_time('Ymd'); 

// Query Args 
$args = array(      
    'post_type' => 'Courses', 
    'posts_per_page' => '25', 
    'meta_query' => array(array(
     'key' => 'date_of_the_course_single_day', 
     'compare' => '>=', 
     'value' => $rightnow, 
    )), 
    'meta_key' => 'date_of_the_course_single_day', 
    'orderby' => 'meta_value', 
    'order' => 'ASC',          
    'post_status' => 'publish' 
); 
$query = new WP_QUery($arg); 
$posts = $query->get_posts(); 

// Paginate Args 
$page_args = array(
    'base'    => 'your_custom_page_url'.'%_%', // Make sure you got this current depending on your setup 
    'format'    => '/%#%', // requires pretty permalinks 
    'total'    => $query->max_num_pages, 
    'current'   => 0, 
    'prev_text'   => __('«'), 
    'next_text'   => __('»'), 
); 

foreach ($posts as $post) { 
    // Output 
} 

echo paginate_links($page_args); 

Sie müssen überprüfen, ob die base und format von Paginieren args davon richtig sind, werden nicht richtig funktionierte.

Verwandte Themen