2016-07-04 61 views
0

我使用wordpress的高級自定義字段插件來創建一組自定義帖子類型,其中設置了一個日期。Wordpress輸出鏈接到自定義查詢的上一篇和下一篇文章

我想根據存儲在自定義字段中的日期顯示上一篇文章和下一篇文章。鏈接需要鏈接到日後設置日期的帖子(所以不要顯示日期已過的帖子的鏈接)/

我可以獲得未來所有帖子的列表,並使用下面的代碼進行輸出:

<?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 
}     
?>        

我想我可以做的,是得到當前職位的數組位置中,以再拿到帖子一前一後...的細節,但我沒有得到一個線索如何做這個。

我已經試驗過wordpress的next_post_link和previous_post_link函數,但是這些似乎是基於WordPress的帖子被添加的時候,而不是基於我的自定義日期字段。

我該怎麼處理這個完全錯誤的方法?任何提示或指針將不勝感激!

回答

0

使用WP_Querypaginate_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); 

您必須驗證PAGINATE args來baseformat是正確的它將無法正常工作。

相關問題